Come configurare l'accesso a un ambiente containerizzato utilizzando Nginx Proxy Manager su Linux
Introduzione
In questo tutorial, configurerai un accesso sicuro e user-friendly ai servizi containerizzati utilizzando Nginx Proxy Manager. Questo approccio semplifica la gestione del reverse proxy tramite un'interfaccia web invece della configurazione manuale. Installerai Nginx Proxy Manager con Docker, lo configurerai ed esporrai un servizio containerizzato tramite un dominio.
Prerequisiti
Pubblico target: Amministratori di sistema principianti
Tempo stimato: ~30 minuti
Obiettivo finale: Alla fine di questo tutorial, avrai una configurazione funzionante di Nginx Proxy Manager che instrada il traffico esterno a un'applicazione containerizzata.
Requisiti di sistema:
- OS: Distribuzione Linux compatibile con Docker
- Docker: 24.0.6 o successivo
- Docker Compose: v2
- Minimo 1 GB di RAM e 10 GB di spazio su disco
- Un nome di dominio che punta all'IP del tuo server
- Porte aperte: 80, 81, 443
- Privilegi sudo
Conoscenze richieste:
- Uso base della riga di comando di Linux
- Comprensione base dei container Docker
Passo 1: Comprendere Nginx Proxy Manager
Nginx Proxy Manager è uno strumento basato sul web che gestisce le configurazioni del reverse proxy Nginx. Ti consente di instradare il traffico verso diversi servizi utilizzando nomi di dominio, abilitare certificati SSL e gestire le regole di accesso senza modificare manualmente i file di configurazione.
Caratteristiche principali:
- Interfaccia web per la gestione del proxy
- SSL automatico tramite Let's Encrypt
- Controllo degli accessi e autenticazione
- Facile integrazione con ambienti Docker
Risultato: Comprendi come Nginx Proxy Manager semplifica l'esposizione dei servizi containerizzati.
Passo 2: Installare Docker e Docker Compose
Installa Docker utilizzando un semplice comando:
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
Verifica l'installazione di Docker:
docker --version
Verifica Docker Compose:
docker compose version
Risultato: Docker e Docker Compose sono installati e pronti all'uso.
Passo 3: Configurare Nginx Proxy Manager
Crea una directory di progetto:
mkdir ~/npm && cd ~/npm
Crea un file di configurazione:
nano docker-compose.yml
Inserisci il contenuto della configurazione:
version: "3" services: app: image: jc21/nginx-proxy-manager:latest restart: always ports: - "80:80" - "81:81" - "443:443" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
Salva il file ed esci.
Avvia il servizio:
docker compose up -d
Risultato: Il container di Nginx Proxy Manager è in esecuzione e in ascolto sulle porte richieste.
Passo 4: Accedere all'Interfaccia Web

Apri il tuo browser e vai a: http://<YOUR_IP_ADDRESS>:81
Credenziali di accesso predefinite:
- Email:
[email protected] - Password:
changeme
Aggiorna le tue credenziali quando richiesto.
Risultato: Puoi accedere e gestire Nginx Proxy Manager tramite l'interfaccia web.
Passo 5: Distribuire un Container di Test
Esegui un container web di test:
docker run -d --name test-app -p 8080:80 nginx
Verifica l'accesso aprendo: http://<YOUR_IP_ADDRESS>:8080
Risultato: Un container di test è in esecuzione ed è accessibile localmente.
Passo 6: Creare un Proxy Host

Nell'interfaccia di Nginx Proxy Manager:
- Clicca su "Proxy Hosts"
- Clicca su "Add Proxy Host"
- Inserisci il dominio:
<YOUR_DOMAIN> - Hostname o IP di inoltro:
localhost - Porta di inoltro:
8080 - Abilita "Block Common Exploits"
- Salva la configurazione
Risultato: Il traffico dal tuo dominio è instradato al container.
Passo 7: Abilitare SSL

Modifica il proxy host:
- Apri la scheda SSL
- Seleziona Request a new SSL Certificate
- Abilita Force SSL
- Abilita HTTP/2 Support
- Inserisci la tua email e accetta i termini
- Salva le modifiche
SSL richiede record DNS corretti che puntano il tuo dominio al tuo server.
Risultato: HTTPS è abilitato e protetto con un certificato valido.
Verifica
Apri il tuo dominio: https://<YOUR_DOMAIN>
Risultati attesi:
- La pagina di test di Nginx si carica
- Il browser mostra un certificato SSL valido
- Non appaiono avvisi di sicurezza
Controlla i container in esecuzione:
docker ps
Risultato: Il reverse proxy funziona correttamente e instrada il traffico in modo sicuro.
Ripristino delle Modifiche
Ferma i servizi:
docker compose down
Rimuovi il container di test:
docker rm -f test-app
Elimina i file di progetto:
rm -rf ~/npm
Importante: Questo rimuove tutte le configurazioni e i certificati SSL.
Risultato: Tutte le modifiche sono annullate e il sistema è pulito.
Risoluzione dei Problemi
Problema: Impossibile accedere all'interfaccia web
Soluzione: Assicurati che la porta 81 sia aperta e non utilizzata da un altro servizio
Problema: La generazione del certificato SSL fallisce
Soluzione: Verifica che la configurazione DNS punti al tuo server
Problema: Il proxy host non funziona
Soluzione: Controlla lo stato del container con docker ps e i log con docker logs <CONTAINER_ID>
Risultato: I problemi comuni sono identificati e risolti.
Conclusione e Prossimi Passi
Hai installato e configurato Nginx Proxy Manager utilizzando Docker ed esposto un servizio containerizzato con un dominio e SSL. Questa configurazione offre un modo semplice e scalabile per gestire più servizi.
Prossimi passi:
- Aggiungi servizi aggiuntivi dietro diversi domini
- Configura liste di controllo degli accessi
- Esplora impostazioni avanzate di proxy e sicurezza