Installera nginx och lets encrypt med docker

Peter Hedman

25 augusti, 2017

Om Peter Hedman

Peter Hedman läser fjärde året civilingenjör i Industriell Ekonomi med inriktning IT vid Blekinge tekniska högskola. Peter är idag 27 år och första gången han stötte på kod var han 15 år. Han jobbar extra på Ericsson i Karlskrona som utvecklare och brinner verkligen för programmering. Peter älskar att sätta tänderna i problem. Något av det bästa han vet är känslan av att under en längre tid sitta med ett problem och sedan hitta en lösning.

Denna artikeln bygger på att du har docker installerat. På följande länk har jag specificerat hur man går tillväga för att installera docker: Installera Docker.
Den bygger även på en artikel från pattonWebs

Let’s encrypt tillåter skapande av gratis ssl-certifikat för din webbplats. Detta gör sidan säker och får en url som tex https://topweb.se.

Jag börjar med att skapa en mapp där nginx.tmpl filen ska ligga, som nginx använder för att konfigurera varje webbplat, via nginx reverse-proxy. Med en reverse-proxy förstår nginx vad den ska visa för något när man går till en url. Tex i dnsinställningar för ett domän pekar vi till serverns ipaddress. Servern kan ha flera webbplatser och hur vet servern då vilken sida som ska visas? Jo, med hjälp av en reverse-proxy förstår servern det. Alltså www.topweb.se visar en sida och www.topwebtest.se visar en annan sida, fastän dom ligger på samma server och i olika dockerkontaners. Nu är min rootanvändare peter så glöm inte att ändra till din korrekta rootanvändare eller någon annan användare på din Ubuntu-server.

sudo mkdir -pv /home/peter/docker/volumes/proxy/templates/

Gå till templatesmappen och skapa en nginx.tmpl-fil
cd /home/peter/docker/volumes/proxy/templates/
sudo nano nginx.tmpl

Klistra sedan in denna koden: nginx.tmpl

Skapa docker-compose-fil

Börja med att skapa ett eget dockernätverk för nginx där även alla webbplatser kommer ligga, så let’s encrypt känner av när en ny webbplats läggs till och kan skapa certifikat.
docker network create nginx-proxy

Cd’a till docker-mappen som skapades tidigare och skapa en docker-compose.yml-fil
cd /home/peter/docker/
sudo nano docker-compose.yml

Klistra sedan in denna koden för nginx med let’s encrypt: docker-compose.yml

Öppna portar

Sen måste vi även öppna portar i brandväggen.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Kör docker-compose-filen

Sista steget är att köra igång nginx servern och du kör docker-compose.yml genom följande kommando.
sudo docker-compose up

Stanna gärna kvar vid skriften som kommer och starta istället en ny ssh session med servern, om du ska lägga till en webbplats, som vi gör i guidens nästa steg. Detta för att i rutan som kommer kan du följa utskrifter när certifikaten skapas etc.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


PageLines