![Installazione di NGINX Proxy Manager su Raspberry Pi come container in Docker Installazione di NGINX Proxy Manager su Raspberry Pi come container in Docker](https://i0.wp.com/www.fargionconsulting.com/wp-content/uploads/2021/05/logo.png?fit=640%2C221&ssl=1)
Installazione di NGINX Proxy Manager su Raspberry Pi come container in Docker
Se stai esponendo porte e servizi dalla tua rete su internet, l’utilizzo di un reverse proxy è un ottimo modo per incrementare le prestazioni e il livello di sicurezza. Un reverse proxy non è altro che un server che si trova tra il tuo router e uno o più server web, e si occupa ad inoltrare le richieste dei client a relativi server web. In parole povere sarà necessario esporre solo un server su internet (utilizzando le porte TCP 80 e 443) e sarai in grado di accedere a tutti i servizi web che desideri e che disponi all’interno della tua rete.
Qui di seguito uno schema esempio che rappresenta il flusso di rete senza l’utilizzo di un reverse proxy.
![](https://i0.wp.com/www.fargionconsulting.com/wp-content/uploads/2021/05/Untitled-Diagram.jpg?resize=616%2C335&ssl=1)
Senza un reverse proxy, sarà necessario definire porte di rete univoche per ciarcun web server.
![](https://i0.wp.com/www.fargionconsulting.com/wp-content/uploads/2021/05/Untitled-Diagram-2.jpg?resize=640%2C287&ssl=1)
Con un reverse proxy, tutto il traffico può essere instradato attraverso le due sole porte TCP 80 e 443.
Assicuriamoci di avere Docker e Docker-compose installati, se non fosse cosi, qui puoi trovare una guida che ho scritto su come installarlo.
Fatta questa premessa, colleghiamoci in SSH sul nostro Raspberry Pi e andiamo a creare la cartella nginx e posizioniamoci all’interno:
mkdir /home/pi/Docker/nginx
cd /home/pi/Docker/nginx
Ora dobbiamo creare un file chiamato config.json
nano config.json
e riportimamo quanto segue:
{
"database": {
"engine": "mysql",
"host": "db",
"name": "npm",
"user": "npm",
"password": "npm",
"port": 3306
}
}
A questo punto possiamo chiudere il file digitando CRTL+X
dopo di che digitiamo Y
o S
(a seconda della lingua impostata) ed infine premiamo il tasto ENTER
per confermare.
Ora andiamo a creare il file docker-compose.yml sempre all’interno della cartella nginx
nano docker-compose.yml
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 si riceve un errore o il container non si avvia e riporta di essere in esecuzione come “unhealthy“, segui le istruzioni seguenti:
Sostituisci questa riga all’interno del file docker-compose.yml:
image: 'yobasystems/alpine-mariadb:latest'
con questa:
image: 'yobasystems/alpine-mariadb:10.4.17-arm32v7'
Chiudiamo il file digitando CRTL+X
dopo di che digitiamo Y
o S
(a seconda della lingua impostata) ed infine premiamo il tasto ENTER
per confermare.
sudo docker-compose up -d
A questo punto docker scaricherà e installerà tutti i file necessari per il container.
Ora modificheremo entrambi i contenitori che Nginx Proxy Manager utilizza per far si che si avviino automaticamente al riavvio del tuo Raspberry Pi.
sudo docker update --restart always nginx_app_1 sudo docker update --restart always nginx_db_1
Ora dobbiamo riavviare il nostro Raspberry (fondamentale!!)
sudo reboot now
Al termine del riavvio, l’installazione completa del container richiederà alcuni minuti. Per verificarne lo stato del container, è possibile eseguire il comando seguente.
sudo docker ps
In alternativa al precedente comando, si si ha Portainer installato, è possibile monitorarne lo stato di tutti i container da li.
Quando segnala “healthy“, sarai in grado di aprire la pagina Web di configurazione di Nginx Proxy Manager.
http://[RASPBERRY_PI_IP]:81
![](https://i0.wp.com/www.fargionconsulting.com/wp-content/uploads/2021/05/login.png?resize=640%2C488&ssl=1)
le credenziali di default per accedere sono:
Email: admin@example.com
Password: changeme
Quando verrà effettuato l’accesso, ci verrà chiesto di modificare queste informazioni e successivamente visualizzeremo la seguente schermata:
![](https://i0.wp.com/www.fargionconsulting.com/wp-content/uploads/2021/05/image-4.png?resize=640%2C174&ssl=1)
A questo punto, Nginx Proxy Manager è completamente installato. Dovremo aprire le porte TCP 80 e 443 sul nostro router e farle puntare al nostro Raspberry Pi. Dopo di chè, non ci resta che configurare Nginx Proxy Manager.
Buon divertimento!