Installare Nginx come reverse proxy di Apache2 su Ubuntu 18.04 LTS

29 apr 2018 2 min di lettura
Installare Nginx come reverse proxy di Apache2 su Ubuntu 18.04 LTS
Indice dei contenuti

Prerequisiti

Installare Apache2

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 *:80>

Cambiamo la porta:


<VirtualHost *: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 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 riavviamo Nginx se non abbiamo commesso errori si riavvierà senza problemi:

sudo service nginx restart
Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.