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.
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.
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: