Nginx è un server Web leggero che ha dimostrato di servire file statici più velocemente di Apache. Questo tutorial ti guiderà come installare Nginx come proxy inverso sul server web Apache.
Requisiti
Hai installato Apache sul tuo server. Apache sta già eseguendo un sito sulla porta 80.
Cambia la porta di ascolto di Apache
Modifica /etc/apache2/ports.confper fare in modo che Apache ascolti la porta 8080 invece della porta 80 predefinita.
Trova la seguente riga:
NameVirtualHost *:80
Listen 80
Modificalo in:
NameVirtualHost *:8080
Listen 8080
Non dimenticare la porta di ascolto vhost esistente in /etc/apache2/sites-enabled/*
Modificare:
<VirtualHost *:80>
Per:
<VirtualHost *:8080>
Disabilita i moduli Unuse in Apache
Poiché le richieste HTTP sono ora gestite da Nginx, possiamo disabilitare KeepAlive in Apache. Modifica /etc/apache2/apache2.confe modifica:
KeepAlive Off
Inoltre, eseguire i seguenti comandi per disabilitare i moduli non utilizzati.
a2dismod deflate
a2dismod cgi
a2dismod autoindex
a2dismod negotiation
a2dismod ssl
Installa il modulo forward
Installa mod_rpaf in Apache per inoltrare l'IP del visitatore ad Apache. Altrimenti, i tuoi script leggeranno i valori REMOTE_ADDR come IP del server.
apt-get install libapache2-mod-rpaf
Arresta il servizio Apache
/etc/init.d/apache2 restart
Setup Nginx
Installa Nginx.
apt-get install nginx
Rimuovi vhost predefinito per prevenire conflitti.
rm -rf /etc/nginx/sites-enabled/*
Crea un nuovo vhost predefinito:
cat >/etc/nginx/sites-available/000-default <<EOF
server {
access_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
EOF
ln -s /etc/nginx/sites-available/000-default /etc/nginx/sites-enabled/000-default
Crea vhost per sito Web esistente per inoltrare la richiesta ad Apache:
cat >/etc/nginx/sites-available/domain.com <<EOF
server {
server_name www.domain.com domain.com;
root /var/www/domain.com/;
access_log off;
# Static contents
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
expires max;
}
# Dynamic content, forward to Apache
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
EOF
ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/domain.com
Riavvia Nginx e il gioco è fatto.
/etc/init.d/nginx restart