Met Caddy-webserver krijg je HTTPS of niets. Laten we dus eens kijken hoe u Caddy op Ubuntu kunt installeren en configureren om uw web-app te bedienen. We krijgen onze TLS-certificaten van LetsEncrypt.
Opstelling
Stel je hebt een VPS met IP-adres: 10.20.30.40 en een FQDN-subdomein.voorbeeld.com wie is Een record wijst naar dit IP.
De VPS draait Ubuntu 18.04 LTS-servereditie en de volgende configuraties worden gedaan als de rootgebruiker.
Stap 1: De Caddy-webserver installeren
Caddy is geschreven in Go en kan worden uitgevoerd als een zelfstandig uitvoerbaar binair bestand. Er zijn echter verschillende plug-ins die u erin kunt inbouwen voor specifieke DNS-servers, enz. We zullen het gewone binaire bestand installeren zonder enige plug-in, dus het werkt voor alle aanpassingen.
Om uw binaire bestand te krijgen, gaat u naar hun officiële downloadpagina en selecteert u alle plug-ins en telemetrie die u nodig heeft. Hieronder staat een bash-opdracht om het binaire bestand van de caddy-server op de juiste locatie te downloaden en te plaatsen. Voer als rootgebruiker uit:
$ krul https://getcaddy.com | bash -s persoonlijkZodra dat is gebeurd, kunnen we het binaire bestand lokaliseren door het volgende uit te voeren:
$ waar is caddycaddy: /usr/local/bin/caddy
Als u ooit de server moet verwijderen of bijwerken met een nieuwer uitvoerbaar bestand, weet u nu waar u moet zoeken.
Stap 2: Uw website testen
Als je geen website hebt, maak dan gewoon een lege map en voer de opdrachten daarin uit. U krijgt mogelijk een Error 404 in uw browser, maar de serverconfiguratie kan nog steeds worden getest. Als u een website heeft, gaat u naar de map waar de webroot van uw website zich bevindt:. Als typisch voorbeeld selecteer ik de /var/www/mijnsite als voorbeeld met de volgende index.html erin opgeslagen.
/var/www/mijnsite/index.htmlDeze pagina wordt beheerd door Caddy Server
Dit is een alinea.
Dit is genoeg om ons op weg te helpen. Nu in dezelfde map als deze index.html-pagina, voer je de volgende opdracht uit:
$ caddiePrivacyfuncties activeren... klaar.
http://:2015
WAARSCHUWING: Bestandsdescriptorlimiet 1024 is te laag voor productieservers. Ten minste 8192 wordt aanbevolen. Fix met 'ulimit -n 8192'.
Laat de caddy in deze staat draaien.
U kunt naar het openbare IP-adres van uw server gaan op poortnummer 2015 om dit te testen: http://10.20.30.40:2015 zorg ervoor dat uw firewall deze poort niet blokkeert.
En je zult die index zien.html wordt automatisch weergegeven. Dit volgt de eeuwenoude conventie dat de eerste pagina van een website index wordt genoemd, die de meeste webservers zoals Nginx, Apache en zelfs Caddy als de eerste pagina dienen, zelfs als je deze pagina niet opgeeft met /index.html aan het einde van de URL.
Stap 3: HTTPS instellen
Nu je hebt bevestigd dat je website inderdaad met Caddy werkt en ermee kan worden bediend, is het tijd om HTTPS in te stellen. Om dit te doen, kunt u de opdrachtregelinterface gebruiken of een configuratiebestand gebruiken met de naam Caddyfile. We zullen eerst de opdrachtregel gebruiken.
Voer de volgende opdracht uit in dezelfde map als uw website:
$ caddy -host subdomein.voorbeeld.com## Voor de eerste keer zal het je om je e-mailadres vragen, zodat je kunt krijgen
kennisgeving van certificaatvernieuwing van LetsEncrypt
Uitgang:
Privacyfuncties activeren…Uw sites worden automatisch via HTTPS weergegeven met behulp van Let's Encrypt.
Door verder te gaan, gaat u akkoord met de Let's Encrypt Abonneeovereenkomst op:
https://letsencrypt.org/documents/LE-SA-v1.2-nov-15-2017.pdf
Voer uw e-mailadres in om akkoord te gaan en om op de hoogte te worden gehouden
in geval van problemen. Je kunt het leeg laten, maar we raden het niet aan.
E-mailadres: [e-mail beveiligd]
…
Dat is het! Je website is nu in de lucht. U kunt het subdomein bezoeken.voorbeeld.com en het wordt automatisch doorgestuurd naar HTTPS zonder aangepast poortnummer of andere nuances.
Zo makkelijk is het! U kunt CTRL+C gebruiken om de server te stoppen, de volgende keer zal deze dit certificaat gewoon opnieuw gebruiken.
Stap 4: Uw Caddy-bestand schrijven
De bovenstaande methode is goed voor experimentele gebruikssituaties waarbij u alleen het water aan het testen bent. Maar als u een actieve webserver als achtergrondproces wilt, moet u een Caddy-bestand schrijven en de webserver vertellen om deze configuratie te gebruiken om uw server te laten draaien.
Dit is het eenvoudigste voorbeeld voor dezelfde website die we hierboven hebben gehost:
subdomein.voorbeeld.comroot /var/www/mijnsite
De root-richtlijn vertelt de webserver waar de website zich bevindt. U kunt deze map niet verlaten vanaf de clientzijde. Het is over het algemeen een goed idee om uw caddiebestand overal te plaatsen, behalve in deze webroot. Je kunt het in de /etc/ map of je home directory plaatsen. Als het bestand bijvoorbeeld is gemaakt in /etc/Caddyfile, kunt u de server vertellen deze configuratie te gebruiken door de opdracht uit te voeren:
$ caddy -conf /etc/CaddyfileEr zijn meerdere richtlijnen die u kunt gebruiken om uw server te verfijnen. U kunt logboekregistratie, compressie, reverse proxy, enz. inschakelen. De officiële documentatie is een goede plek om te beginnen met het zoeken naar richtlijnen met betrekking tot uw use case. Hier is nog een voorbeeld waarbij twee websites met twee verschillende domeinnamen worden bediend:
subdomein.voorbeeld.comroot /var/www/mijnsite
subdomein2.voorbeeld.com
root /var/www/mijnsite2
gzip
log… /toegang.log
De richtlijn gzip maakt compressie mogelijk, als de client dit ondersteunt. Dit verbetert de prestaties omdat er meer gegevens over de bandbreedte en hetzelfde tijdsinterval kunnen worden verzonden. Loggen helpt bij het debuggen en bijhouden van netwerkactiviteit.
Conclusie
De grootste kracht van de Caddy-webserver is het gemakkelijk te schrijven en te lezen configuratiebestand en de flexibiliteit op meerdere platforms. Vanwege de vreemde licenties is de server echter niet strikt open source. De broncode is open source en u kunt deze volledig zelf compileren en het resulterende uitvoerbare bestand gebruiken, maar het binaire bestand dat u van de officiële site ontvangt, is niet bedoeld voor gebruik voor commerciële doeleinden zonder de juiste licentie.
Dit brengt ons terug bij de kwestie van complicaties, waar we in plaats van alleen met configuratiebestanden te maken hebben, ook te maken hebben met de compilatie van de broncode die het doel van een gebruiksvriendelijke webserver verslaat. Laat het ons weten als je ideeën hebt over Caddy en of een van je websites daarop draait.