Med Caddy-webbservern får du HTTPS eller ingenting. Så låt oss se hur du kan installera Caddy på Ubuntu och konfigurera den för att betjäna din webbapp. Vi kommer att få våra TLS-certifikat från LetsEncrypt.
Uppstart
Antag att du har en VPS med IP-adress: 10.20.30.40 och en FQDN-underdomän.exempel.com vem är En post pekar på denna IP.
VPS kör Ubuntu 18.04 LTS-serverutgåva och följande konfigurationer görs som rotanvändare.
Steg 1: Installera Caddy-webbservern
Caddy är skrivet i Go och kan köras som en fristående körbar binär. Det finns dock olika plugins som du kan bygga in i det för specifika DNS-servrar, etc. Vi kommer att installera den vanliga binära utan någon plugin så det fungerar i alla anpassningar.
För att få din binära besök deras officiella nedladdningssida och välj alla plugins och telemetri som du behöver. Nedan kommer det att finnas ett bash-kommando för att ladda ner och placera caddy-serverns binära på rätt plats. Som root-användare kör du:
$ curl https: // getcaddy.com | bash -s personligaNär det är gjort kan vi lokalisera binären genom att köra:
$ var är caddycaddy: / usr / local / bin / caddy
Om du någonsin behöver ta bort servern eller uppdatera den med nyare körbar, vet du nu var du ska leta.
Steg 2: Testa din webbplats
Om du inte har en webbplats, skapar du bara en tom mapp och kör kommandona där inne. Du kan få ett fel 404 i din webbläsare men serverinstallationen kan fortfarande testas. Om du har en webbplats som går igenom katalogen där webbroot för din webbplats finns. Som ett typiskt exempel kommer jag att välja / var / www / min webbplats som ett exempel med följande index.html lagrad inuti den.
/ var / www / minwebbplats / index.htmlDenna sida serveras av Caddy Server
Detta är ett stycke.
Detta räcker för att komma igång. Nu i samma katalog som detta index.html-sida, kör följande kommando:
$ caddyAktiverar sekretessfunktioner ... gjort.
http: //: 2015
VARNING: Filbeskrivningsgräns 1024 är för låg för produktionsservrar. Minst 8192 rekommenderas. Fixa med 'ulimit -n 8192'.
Lämna caddy igång i detta tillstånd.
Du kan gå till din servers offentliga IP på portnummer 2015 för att testa detta: http: // 10.20.30.40: 2015 se till att din brandvägg inte blockerar den här porten.
Och du kommer att se det indexet.html serveras automatiskt. Detta följer den gammala konventionen att varje webbplats första sida heter index som de flesta webbservrar som Nginx, Apache och till och med Caddy serverar som första sidan, även om du inte anger den här sidan med / index.html i slutet av webbadressen.
Steg 3: Konfigurera HTTPS
Nu när du har bekräftat att din webbplats verkligen fungerar med Caddy och kan serveras med den är det dags att ställa in HTTPS. För att göra detta kan du använda kommandoradsgränssnittet eller använda en konfigurationsfil som kallas Caddyfile. Vi kommer att använda kommandoraden först.
Kör följande kommando i samma katalog som din webbplats:
$ caddy-värdunderdomän.exempel.com## För första gången kommer den att be dig om din e-postadress så att du kan få
meddelande om förnyelse av certifikat från LetsEncrypt
Produktion:
Aktiverar sekretessfunktioner ..Dina webbplatser kommer att serveras via HTTPS automatiskt med Let's Encrypt.
Genom att fortsätta samtycker du till Let's Encrypt Subscriber Agreement på:
https: // letsencrypt.org / dokument / LE-SA-v1.2 november-15-2017.pdf
Ange din e-postadress för att underteckna avtalet och för att bli meddelad
vid problem. Du kan lämna det tomt, men vi rekommenderar det inte.
E-postadress: [e-postskyddad]
..
Det är allt! Din webbplats är nu igång. Du kan besöka underdomän.exempel.com och den omdirigeras automatiskt till HTTPS utan något anpassat portnummer eller andra nyanser.
Det är så enkelt! Du kan CTRL + C för att stoppa servern, nästa gång kommer det bara att återanvända detta certifikat.
Steg 4: Skriv din Caddyfile
Ovanstående metod är bra för experimentella användningsfall där du bara testar vattnet. Men om du vill ha en webbserver som kör som bakgrundsprocess måste du skriva en Caddyfile och be webbservern att använda den här konfigurationen för att köra din server.
Detta är det enklaste exemplet för samma webbplats som vi var värd ovan:
underdomän.exempel.comroot / var / www / mysite
Rotdirektivet berättar för webbservern var webbplatsen finns. Du kan inte komma ur den här katalogen från klientsidan. Det är i allmänhet en bra idé att placera din caddy-fil var som helst utom i den här webroot. Du kan placera den i / etc / mappen eller din hemkatalog. Om filen till exempel skapas på / etc / Caddyfile kan du be servern att använda den här konfigurationen genom att köra kommandot:
$ caddy -conf / etc / CaddyfileDet finns flera direktiv som du kan använda för att finjustera din server. Du kan aktivera loggning, komprimering, omvänd proxy, etc. Den officiella dokumentationen är ett bra ställe att börja leta efter direktiv som är relaterade till ditt användningsfall. Här är ett annat exempel där två webbplatser med två olika domännamn serveras:
underdomän.exempel.comroot / var / www / mysite
underdomän2.exempel.com
root / var / www / mysite2
gzip
logga ... / åtkomst.logga
Direktivet gzip möjliggör komprimering om klienten stöder det. Detta förbättrar prestandan eftersom mer data kan skickas över bandbredden och samma tidsintervall. Loggning hjälper till med felsökning och spårning av nätverksaktivitet.
Slutsats
Den största styrkan för Caddy-webbservern är dess enkla att skriva och läsa konfigurationsfil och dess flexibilitet över flera plattformar. Men på grund av dess konstiga licensiering är servern inte helt öppen källkod. Källkoden är öppen källkod, och du kan helt kompilera den själv och använda den resulterande körbara filen, men den binära som du får från den officiella webbplatsen är inte avsedd att användas för kommersiella ändamål utan rätt licens.
Detta tar oss tillbaka till frågan om komplikationer där vi istället för att hantera bara konfigurationsfiler måste hantera källkodssammanställningen och besegra syftet med enkel att använda webbserver. Låt oss veta om du har några tankar om Caddy och om någon av dina webbplatser körs ovanpå.