Introduzione
Se il vostro intento è installare Nginx come reverse proxy di Apache2 su di un server in remoto continuate a leggere, altrimenti se volete installare Nginx sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.
Per connettersi al server come utente root digitare questo comando:
ssh root@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare il primo parametro:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Nginx come reverse proxy.
Prerequisiti
Installazione di Apache su Debian 10.
Configurazione Apache2
La prima cosa da fare è cambiare la porta di default utilizzata da Apache2, quindi utilizzeremo la porta 8000 invece di 80. Da terminale dare questo comando:
sudo nano /etc/apache2/ports.conf
Cerchiamo la riga:
Listen 80
Cambiamo la porta:
Listen 8000
Salvare e chiudere il file.
Adesso cambiamo la porta nel VirtualHost . Sempre da terminale:
sudo nano /etc/apache2/sites-available/000-default.conf
Cerchiamo:
<VirtualHost 127.0.0.1:80>
Cambiamo la porta:
<VirtualHost 127.0.0.1:8000>
Salvare e chiudere il file.
Possiamo installare un modulo di Apache2 libapache2-mod-rpaf che ha il compito di cambiare l'indirizzo remoto del client visibile ad altri moduli Apache.
sudo apt-get -y install libapache2-mod-rpaf
Riavviamo Apache2:
sudo service apache2 restart
Installazione e configurazione di Nginx
Per maggiori dettagli leggere la guida su Nginx.
Da terminale:
sudo apt-get -y install nginx
Attiviamo l'avvio automatico di Nginx:
sudo systemctl enable nginx.service
Riavviamo Nginx:
sudo service nginx restart
Troveremo delle configurazioni di default del proxy nel seguente file:
sudo nano /etc/nginx/proxy_params
Aggiungiamo le seguenti configurazioni standard per il proxy:
proxy_set_header Host $http_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;
client_max_body_size 100M;
client_body_buffer_size 1m;
proxy_intercept_errors on;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 256 16k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_read_timeout 300;
Salvare e chiudere il file.
Apriamo il file di configurazione di Nginx:
sudo nano /etc/nginx/sites-available/default
Questa è una configurazione di base che ci permette di utilizzare Nginx come reverse proxy di Apache2:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
proxy_pass http://localhost:8000;
include /etc/nginx/proxy_params;
}
}
Riavviamo Nginx
sudo service nginx reload
Nginx è più veloce di Apache nel servire i file statici come Js e CSS, quindi configuriamo Nginx in modo tale che serva direttamente i file statici e che invii le richieste di PHP ad Apache:
server {
listen 80;
server_name default_server;
root /var/www/html;
index index.php index.htm index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_pass http://localhost:8000;
include /etc/nginx/proxy_params;
}
location ~* \.(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ {
expires 30d;
}
}
Salvare e chiudere il file.
Verifichiamo la corretta configurazione di Nginx:
sudo nginx -t
Quindi, se non risultano errori, riavviare Nginx:
sudo service nginx reload
L'installazione di Nginx come reverse proxy di Apache2 su Debian 10 è terminata.