Nginx futtatása docker konténerben, több hoszt támogatása, SSL tanusítvány kezelés.

Tűzfalon pfsense, 80-as, 443-as portok átirányításra kerültek a jelenlegi docker host irányába.1

Nginx első indítása Docker környezetben

ssh ladmin@docker
# a gépen lévő image-k megtekintése
sudo docker images

ha még nem készült korábban debian-base image akkor kattints ide.

OpenSSL használata jelszóval védett tömörített állományokhoz.

git clone https://github.com/csepely/debian-nginx.git
cd debian-nginx
sudo dev/build
# nginx konténer indítása
sudo dev/run
# config állomány feltöltése
sudo docker cp configs.tar.xz.enc debian-nginx:/root/
# parancssor elérése a konténeren belül
sudo docker exec -ti debian-nginx /bin/bash
# az alábbi parancsok a docker konténeren belül lesznek kiadva
#
# config állomány kitömörítése
openssl enc -aes-256-cbc -d -pbkdf2 -in configs.tar.xz.enc | tar -P -xJ
# kiszolgált oldalak engedélyezése
cd /etc/nginx/sites-enabled/
for i in \
it-pelda-hu \
it-pelda-hu-ssl \
pelda-ddns-net \
pelda-hopto-org; \
do \
ln -s /etc/nginx/sites-available/$i $i; \
done
# nginx config teszt, reload
nginx -t
# ha OK...
nginx -s reload
# certbot tanusítványok beállítása
## domain1.ddns.net
certbot certonly --agree-tos \
--email user@pelda.hu \
--webroot -w /var/lib/letsencrypt/ \
-d pelda.ddns.net
## pelda.hopto.org
certbot certonly --agree-tos \
--email user@pelda.hu \
--webroot -w /var/lib/letsencrypt/ \
-d pelda.hopto.org
# ssl oldalak engedélyezése
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/pelda-ddns-net-ssl pelda-ddns-net-ssl
ln -s /etc/nginx/sites-available/pelda-hopto-org-ssl pelda-hopto-org-ssl
# nginx reload
nginx -s reload
# parancsok vége, kilépés
exit

Monitorozás

konténer log

docker logs -f debian-nginx

shell kérése

sudo docker exec -ti debian-nginx /bin/bash
...
# kilépés
exit

Változtatás esetén

nginx, certbot

tar -P --exclude=/etc/nginx/sites-available/default -cJ \
      /etc/letsencrypt/ \
      /etc/nginx/snippets/letsencrypt.conf \
      /etc/nginx/sites-available/* | \
      openssl enc -aes-256-cbc -e -pbkdf2 -out configs.tar.xz.enc
# ezután másoljuk ki a konténerből a mentést

Tanusítvány frissítés 2

certbot renew --post-hook "nginx -s reload"

Konfig állomány kimentése a docker-ből

sudo docker cp debian-nginx:/root/configs.tar.xz.enc .

Konfig állomány bemásolása a docker-be

sudo docker cp configs.tar.xz.enc debian-nginx:/root/
  1. Frissítve: 2020-05-08 

  2. Frissítve: 2020-07-20