Tra gli ultimi articoli

Nginx Reverse Proxy su Apache server

nginxA cosa server il reverse proxy di Nginx su Apache? Semplicissimo, in questo modo possiamo avere come benifici sia la protezione del server che la possibilità di utilizzare cache direttamente sul proxy server dove abbiamo Nginx. Questo server ci fungerà da scudo verso l’esterno e in caso di attacco il server attaccato sarebbe il server proxy e non il server dove gira apache.

Allora come primo punto ecco la configurazione di Nginx sul nostro proxy:

server{
listen      80 default_server;
listen      [::]:80 default_server;
server_name www.miodominio.com
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
proxy_pass http:// IP DEL SERVER DI APACHE;
proxy_set_header Host            $host;
proxy_set_header REMOTE_ADDR $userip;
}

A questo punto basterà riavviare nginx ( service nginx restart), cambiare i Dns e puntarli sull’ip del nostro proxy e già di per se il proxy funzionerebbe. Ho riscontrato un problema però, utilizzando php e $_SERVER[‘REMOTE_ADDR’]; il server mi vedeva sempre il [REMOTE ADDR] come ip del server proxy anzichè quello dell’utente. Per fixare questo problema dobbiamo configurare una mod dentro il file di configurazione di apache del server principale in modo che apache setti il REMOTE ADDR come Ip dell’utente.

Procedure per Apache sul server principale, installazione MOD_RPAF:

Installazione mod

wget http://mirror.trouble-free.net/sources/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Direttive da aggiungere nel file di configurazione di apache, su centos: /etc/httpd/conf/httpd.conf

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 1.2.3.4
RPAFheader X-Forwarded-For

Al posto di 1.2.3.4 inseriamo l’ip del nostro proxy o un range scrivendo due ip separati da uno spazio, riavviamo apache ( service httpd restart) ed il gioco è fatto. Possiamo trovare la lista delle mod più recenti su http://stderr.net/apache/rpaf/download/ al posto della 0.6 che è la più attuale al momento.

About Stefano Berardi

Stefano Berardi
''non sono superman... I'm not superman..."