nginx docker - omartek/linux_variePerLaboratorio GitHub Wiki

Table of Contents

Guida configurazione Nginx

Example.conf ufficiale

Guida configurazione

Reverse proxy docker Letsencrypt-linuxserver.io (Nginx e SSL)

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)

Tutorial dettagliato

Home di Letsencrypt-linuxserver.io

Reverse proxy Ubooquity

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;    
 }
 }

Docker Ngnix

Docker Nginx ufficiale

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.

Docker Ngnix reverse proxy

Guida con spiegazione

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)

File per container Nginx

Dockerfile

 #  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/

Nginx docker-compose.yml

 ---
 version: '2'
 services:
   proxy:
     build: ./
     networks:
     - site1
     - site2
     ports:
     - 80:80
 networks:
   site1:
     external:
       name: site1_default
   site2:
     external:
       name: site2_default

Nginx default.conf.

File container delle app avviate tramite proxy

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

Creare Network

 docker network ls
 docker network create nome-net
 docker netword connect nome-net nome-container

Riavviare Letsencript

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
⚠️ **GitHub.com Fallback** ⚠️