nginx docker - omartek/linux_variePerLaboratorio GitHub Wiki
Vedi i file utilizzati nella VPS
Prima di eseguire docker-compose avviare i docker delle web-app che verranno gestite da Nginx.
Quindi modificare il file docker-compose.yml aggiungendo le networks delle applicazioni e i sottodomini se utilizzati. Modificare il file di configurazione default aggiungendo i campi server per i vari reverse proxy.
All'interno del file default, includere il file proxy.conf all'interno della definizione della location /.
Nella definizione del server_name in location/ indicare come porta quella interna del container (docker run -d --name some-name -e url=https://blog.scuolabit.it -p 3001:2368 ghost per esempio 2368)
Home di Letsencrypt-linuxserver.io
Inserito /etc/hosts con aggiunta di mypc.it
File sito1 di configurazione copiato nella cartella /etc/nginx/sites-enabled
server {
listen 80;
server_name mypc.it;
location /ubooquity/ {
# proxy_buffers 16 4k;
# proxy_buffer_size 2k;
proxy_pass http://localhost:2202/ubooquity/;
proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Attenzione: Docker può copiare il contenuto e i file di configurazione da una directory locale sull'host Docker durante la creazione del contenitore. Una volta creato un contenitore, i file vengono aggiornati creando un nuovo contenitore.
Guida utilizzata per i file qui riportati
Questi i passaggi:
- creare i container delle applicazioni ed avviarli tramite i loro docker-compose.yml
- ad ogni container sarà associata una propria network (usare docker network ls per trovarla)
- creare i file di configurazione di Nginx (utilizzare i nomi dei container nel file default.conf per il proxy)
- creare il Dockerfile e il docker-compose.yml di Nginx con indicate le network delle varie applicazioni
- creare il container Nginx eseguendo docker-compose (build e up -d separatamente volendo)
# default conf for proxy service COPY ./default.conf /etc/nginx/conf.d/default.conf # NOT FOUND response COPY ./backend-not-found.html /var/www/html/backend-not-found.html # Proxy and SSL configurations COPY ./includes/ /etc/nginx/includes/ # Proxy SSL certificates # COPY ./ssl/ /etc/ssl/certs/nginx/
---
version: '2'
services:
proxy:
build: ./
networks:
- site1
- site2
ports:
- 80:80
networks:
site1:
external:
name: site1_default
site2:
external:
name: site2_default
Il file docker-compose.yml creato all'interno di cartelle del tipo site1/, creerà la rete site1_default ed il record DNS site1_app_1.
---
version: '2'
services:
app:
image: nginx:latest
volumes:
- .:/usr/share/nginx/html/
expose:
- "80"
Per conoscere nome del container e della rete eseguire:
docker ps docker network ls
docker network ls docker network create nome-net docker netword connect nome-net nome-container
Cancellare l'immagine esistente (verificare se necessario)
docker rm Letsencrypt
Riavviare tutti i servizi web
docker start mariadb docker start moodle docker start calibre docker start ghost
E riavviare Letsencrypt
docker-compose up -d