Med Caddy-webserver får du HTTPS eller intet. Så lad os se, hvordan du kan installere Caddy på Ubuntu og konfigurere det til at betjene din webapp. Vi får vores TLS-certifikater fra LetsEncrypt.
Opsætning
Antag, at du har en VPS med IP-adresse: 10.20.30.40 og et FQDN-underdomæne.eksempel.com, der er en rekord, der peger på denne IP.
VPS kører Ubuntu 18.04 LTS-serverudgave og følgende konfigurationer udføres som rodbruger.
Trin 1: Installation af Caddy-webserveren
Caddy er skrevet i Go og kan køre som en selvstændig eksekverbar binær. Der er dog forskellige plugins, som du kan bygge ind i det til specifikke DNS-servere osv. Vi installerer almindeligt binært uden noget plugin, så det fungerer på tværs af alle tilpasninger.
For at få din binære besøg deres officielle downloadside og vælg alle de plugins og telemetri, du har brug for. Nedenfor vil der være en bash-kommando til at downloade og placere caddy-server binær på det rigtige sted. Som root-bruger skal du køre:
$ curl https: // getcaddy.com | bash -s personligeNår det er gjort, kan vi finde den binære ved at køre:
$ hvor er caddiecaddy: / usr / local / bin / caddy
Hvis du nogensinde har brug for at fjerne serveren eller opdatere den med en nyere eksekverbar, ved du nu, hvor du skal se.
Trin 2: Test dit websted
Hvis du ikke har et websted, skal du bare oprette en tom mappe og køre kommandoerne derinde. Du får muligvis en fejl 404 i din browser, men serveropsætningen kan stadig testes. Hvis du har et websted, der krydser til det bibliotek, hvor dit webroot findes. Som et typisk eksempel vælger jeg / var / www / mit websted som et eksempel med følgende indeks.html gemt inde i den.
/ var / www / mysite / index.htmlDenne side serveres af Caddy Server
Dette er et afsnit.
Dette er nok til at komme os i gang. Nu i samme bibliotek som dette indeks.html-side, kør følgende kommando:
$ caddyAktivering af privatlivsfunktioner ... færdig.
http: //: 2015
ADVARSEL: Filbeskrivelsesgrænse 1024 er for lav til produktionsservere. Mindst 8192 anbefales. Fix med 'ulimit -n 8192'.
Lad caddie køre i denne tilstand.
Du kan gå til din servers offentlige IP på portnummer 2015 for at teste dette: http: // 10.20.30.40: 2015 skal du sørge for, at din firewall ikke blokerer denne port.
Og du vil se dette indeks.html serveres automatisk. Dette følger den ældgamle konvention om, at ethvert websteds første side hedder indeks, som de fleste webservere som Nginx, Apache og endda Caddy serverer som den første side, selv når du ikke angiver denne side ved hjælp af / index.html i slutningen af URL'en.
Trin 3: Opsætning af HTTPS
Nu hvor du har bekræftet, at dit websted virkelig fungerer med Caddy og kan serveres med det, er det tid til at konfigurere HTTPS. For at gøre dette kan du bruge kommandolinjegrænsefladen eller bruge en konfigurationsfil kaldet Caddyfile. Vi bruger først kommandolinjen.
Kør følgende kommando i samme bibliotek som dit websted:
$ caddy -host-underdomæne.eksempel.com## For første gang beder den dig om din e-mail-adresse, så du kan få
meddelelse om fornyelse af certifikat fra LetsEncrypt
Produktion:
Aktiverer privatlivsfunktioner ..Dine websteder serveres automatisk via HTTPS ved hjælp af Let's Encrypt.
Ved at fortsætte accepterer du Let's Encrypt Subscriber Agreement på:
https: // letsencrypt.org / dokumenter / LE-SA-v1.2. november-15-2017.pdf
Indtast din e-mail-adresse for at underskrive aftale og for at blive underrettet
i tilfælde af problemer. Du kan lade det være tomt, men vi anbefaler det ikke.
E-mail-adresse: [email protected]
..
Det er det! Dit websted er nu i gang. Du kan besøge underdomæne.eksempel.com, og det omdirigeres automatisk til HTTPS uden noget brugerdefineret portnummer eller andre nuancer.
Det er så let! Du kan CTRL + C for at stoppe serveren, næste gang det genbruger dette certifikat.
Trin 4: Skriv din Caddyfile
Ovenstående metode er god til eksperimentelle tilfælde, hvor du bare tester vandet. Men hvis du vil have en kørende webserver som baggrundsproces, skal du skrive en Caddyfile og fortælle webserveren at bruge denne konfiguration til at køre din server.
Dette er det enkleste eksempel på det samme websted, som vi hostede ovenfor:
underdomæne.eksempel.comroot / var / www / mysite
Roddirektivet fortæller webserveren, hvor hjemmesiden er placeret. Du kan ikke komme ud af denne mappe fra klientsiden. Det er generelt en god ide at placere din caddie-fil hvor som helst, men inde i denne webroot. Du kan placere den i / etc / mappen eller dit hjemmekatalog. For eksempel, hvis filen oprettes på / etc / Caddyfile, kan du bede serveren om at bruge denne konfiguration ved at køre kommandoen:
$ caddy -conf / etc / CaddyfileDer er flere direktiver, som du kan bruge til at finjustere din server. Du kan aktivere logning, komprimering, omvendt proxy osv. Den officielle dokumentation er et godt sted at begynde at lede efter direktiver relateret til din brugssag. Her er et andet eksempel, hvor der serveres to websteder med to forskellige domænenavne:
underdomæne.eksempel.comroot / var / www / mysite
underdomæne2.eksempel.com
root / var / www / mysite2
gzip
log ... / adgang.log
Direktivet gzip muliggør komprimering, hvis klienten understøtter det. Dette forbedrer ydeevnen, da flere data kan sendes over båndbredden og det samme tidsinterval. Logføring hjælper med fejlretning og styring af netværksaktivitet.
Konklusion
Den største styrke ved Caddy-webserver er dens nemme at skrive og læse konfigurationsfil og dens fleksibilitet på tværs af flere platforme. På grund af sin underlige licensering er serveren imidlertid ikke strengt open source. Kildekoden er open source, og du kan helt kompilere den selv og bruge den resulterende eksekverbare, men den binære, du modtager fra det officielle websted, er ikke beregnet til brug til kommercielle formål uden ordentlig licens.
Dette bringer os tilbage til spørgsmålet om komplikationer, hvor vi i stedet for at håndtere bare konfigurationsfiler også skal håndtere kildekodekompilering, der besejrer formålet med nem at bruge webserver. Fortæl os, hvis du har nogen tanker om Caddy, og hvis nogen af dine websteder kører oven på det.