L'utilizzo di container Docker per eseguire applicazioni web è una pratica comune per via della loro efficienza e scalabilità. In questa guida, vedremo come configurare nginx come server web reverse proxy per un'istanza WordPress installata su Docker.
Per permettere ai container di comunicare tra loro, è utile creare una rete Docker.
docker network create wordpress-net
WordPress necessita di un database MySQL. Esegui il seguente comando per creare un container MySQL:
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=tua_password -e MYSQL_DATABASE=wordpress -e MYSQL_USER=utente_wp -e MYSQL_PASSWORD=password_wp --network wordpress-net -d mysql:5.7
Sostituisci tua_password
, utente_wp
, e password_wp
con le credenziali che preferisci.
Ora puoi avviare il container WordPress collegandolo alla stessa rete del database:
docker run --name wordpress --network wordpress-net -e WORDPRESS_DB_HOST=wordpressdb:3306 -e WORDPRESS_DB_USER=utente_wp -e WORDPRESS_DB_PASSWORD=password_wp -e WORDPRESS_DB_NAME=wordpress -p 8080:80 -d wordpress
Per far sì che nginx funzioni come reverse proxy per il tuo container WordPress, devi modificare il file di configurazione di nginx. Supponendo che nginx sia installato sullo stesso host, modifica il file /etc/nginx/sites-available/default
o crea un nuovo file di configurazione nella stessa directory.
Ecco un esempio di configurazione:
server {
listen 80;
server_name tuo_dominio.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Assicurati di sostituire tuo_dominio.com
con il tuo dominio effettivo. Per applicare le modifiche, riavvia nginx.
In conclusione, configurare nginx per gestire un'istanza WordPress su Docker può sembrare complesso, ma seguendo questi passaggi potrai ottenere un ambiente di hosting efficiente e scalabile. Ricorda di mantenere aggiornati i tuoi sistemi e di monitorare regolarmente le prestazioni e la sicurezza.