Marvin Pascale

[B.Log]

21 Febbraio 2021

Nginx Proxy Manager

Nginx Proxy Manager

Nginx è uno dei server web più famosi, ma nella mia esperienza l’ho visto impiegato sempre più come reverse proxy.

Ed è qui che entra in gioco il progetto Nginx Proxy Manager.

Nginx Proxy Manager è un progetto opensource che aggiunge alla versione opensource di nginx web server una serie di utilities ( Let’s Encrypt, etc) e una ben studiata interfaccia web.

Sulla pagina del progetto si legge:

Ho creato questo progetto per soddisfare un’esigenza personale e fornire agli utenti un modo semplice per realizzare reverse proxy con SSL e doveva essere così facile che anche una scimmia potesse riuscirci. Questo obiettivo non è cambiato. Sebbene possano esserci opzioni avanzate, sono opzionali e il progetto dovrebbe essere il più semplice possibile in modo che la barriera d’ingresso sia più bassa possibile.

Le funzionalità più interessanti sono:

  • interfaccia di amministrazione bella e sicura basata su Tabler;
  • facilità di configurazione per i reverse proxy (siti web, stream, pagine di errore, etc);
  • SSL facile e gratuito con Let’s Encrypt;
  • access list e autenticazione per i servizi pubblicati;
  • configurazione di Nginx avanzata per i più esperti;
  • gestione utenti, permessi e audit.

Mani in pasta

Per poter avviare il progetto è necessario avere docker compose.

E’ necessario scaricare il file yaml che avvierà i due container.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

Il primo container avvia l’applicazione ed espone nginx sulle porte 80, 443 e l’applicazione di gestione sulla port 81. Il secondo container invece è una customizzazione di MariaDB.

# docker-compose up -d

All’avvio verranno create le cartelle di configurazione e persistenza dei dati per entrambi i container.

Se tutto è andato per il meglio alla pagina

_http://[IPHOST]:81/

vedrete la pagina di login.

Nginx PM Login

Le credenziali di accesso di default

Email:    [email protected]
Password: changeme

Al primo accesso verrà richiesto di definire l’utente amministratore e la nuova password.

Aggiungere un nuovo host è molto semplice. Tramite “Hosts” -> “Proxy Hosts” -> “Add Proxy Host” è possibile aggiungere il nostro primo reverse proxy.

Nginx PM Login

Sul sito ufficiale sono disponibili molti screenshot e una documentazione ben fatta.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: