Oggi vedremo come installare Nginx Proxy Manager su un Raspberry Pi!
Se stai esponendo servizi sulla tua rete, l'utilizzo di un proxy inverso è un ottimo modo per aumentare la sicurezza e le prestazioni. Un proxy inverso è un server che si trova di fronte ai server Web e inoltra le richieste dei client ai server Web. In parole povere, devi solo esporre un server (usando le porte 80/443) e sarai in grado di esporre tutti i servizi web che desideri.
Questo è un esempio del flusso di rete di un proxy inverso (semplificato):
Questo tutorial utilizzerà un Raspberry Pi, che è ottimo per l'uso domestico, ma se stai ospitando qualcosa con molto traffico, probabilmente è meglio usare un server più capace. Verificheremo lo stato dell'applicazione al termine dell'installazione utilizzando Portainer, ma non è necessario.
Istruzioni – Nginx Proxy Manager Raspberry Pi
Assicurati che Docker sia installato. Se non è installato, puoi scoprire come installarlo qui.
1. È necessario utilizzare la composizione mobile per creare il contenitore Nginx Proxy Manager. Ciò richiede l'installazione di alcune dipendenze:esegui i comandi di installazione di seguito in ordine.
sudo apt-get install -y libffi-dev libssl-dev sudo apt-get install -y python3 python3-pip sudo pip3 -v install docker-compose
2. Al termine dell'installazione dei comandi, è necessario creare una cartella in cui esisteranno i nostri file di configurazione e di composizione mobile. Passeremo quindi a quella cartella e creeremo un file chiamato config.json.
mkdir nginx cd nginx nano config.json
3. Incolla questi contenuti nel file di configurazione.
{
"database": {
"engine": "mysql",
"host": "db",
"name": "npm",
"user": "npm",
"password": "npm",
"port": 3306
}
}
4. Salva il file ed esci. Crea un nuovo file chiamato docker-compose.yml
nano docker-compose.yml
5. Incolla il contenuto di seguito nel file di composizione mobile.
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./config.json:/app/config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: 'yobasystems/alpine-mariadb:latest'
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
Se ricevi un errore e il contenitore non si avvia ed è in esecuzione come "non integro", segui le istruzioni seguenti:
Un ringraziamento speciale a Plan945 per aver commentato la soluzione.
Sostituiscilo nella finestra mobile-compose.yml:
image: 'yobasystems/alpine-mariadb:latest'
Con questo:
image: 'yobasystems/alpine-mariadb:10.4.17-arm32v7'
6. Salvare il file ed uscire. Dovresti avere due file che esistono nella cartella nginx. Esegui il comando seguente per avviare il contenitore Docker.
sudo docker-compose up -d
7. Il contenitore scaricherà e installerà tutti i file necessari.
8. Ora regoleremo entrambi i contenitori utilizzati da Nginx Proxy Manager per l'avvio automatico al riavvio del tuo Raspberry Pi.
sudo docker update --restart always nginx_app_1 sudo docker update --restart always nginx_db_1
9. Riavvia il tuo Raspberry Pi:molto importante!
sudo reboot now
10. Al termine del riavvio, il contenitore impiegherà alcuni minuti per l'installazione completa. È possibile eseguire il comando seguente per verificare lo stato del contenitore. Quando segnala "sano", sarai in grado di navigare al sito Web di Nginx Proxy Manager. In alternativa, se configuri Portainer, puoi aprire Portainer e controllare lì lo stato del container.
sudo docker ps
11. Attendi che lo stato diventi sano .
12. Vai all'indirizzo IP del tuo Raspberry Pi e alla porta 81.
http://[RASPBERRY_PI_IP]:81
13. L'indirizzo email predefinito è [email protected] e la password è changeme. Quando accedi, ti verrà chiesto di modificare queste informazioni.
14. A questo punto, Nginx Proxy Manager è completamente installato. Dovrai aprire le porte 80/443 sul tuo router per puntare al tuo Raspberry Pi. Da lì, dovrai configurare Nginx Proxy Manager. La maggior parte delle persone utilizzerà Nginx Proxy Manager come nient'altro che un proxy manager. Non seguirò il processo di configurazione di un servizio poiché sarà diverso per tutti, ma guarda il video se sei interessato a vedere come può essere utilizzato mentre ho seguito un esempio lì!
Conclusione
Se stai esponendo servizi sulla tua rete, l'utilizzo di un proxy inverso è un'ottima idea. Molte persone non hanno bisogno di un server completo che esegue Nginx Proxy Manager, quindi un Raspberry Pi è un'ottima opzione in quel caso. Funziona bene ed è piuttosto semplice da configurare.
Grazie per aver letto il tutorial. Se hai domande, lasciale nei commenti!