Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 15623|Répondre: 0

[Web] Nginx en interface et Apache en arrière-plan obtiennent la véritable adresse IP de l’utilisateur

[Copié le lien]
Publié sur 03/11/2014 09:46:05 | | |
Récemment, il était en généralApache-2.2 etApache-2,4 à ajouter à "Package d’installation en un clic de LNMP",NginxEn tant que front-end, Apache ne peut obtenir que l’adresse IP de la front-end Nginx (127.0.0.1), mais pas l’adresse IP réelle de l’utilisateur.
Nginx est configuré comme suit :
  1. location / {
  2.         try_files $uri @apache;
  3.         }

  4. location @apache {
  5.         internal;
  6.         proxy_pass http://127.0.0.1:8080;
  7.         include proxy.conf;
  8.         }

  9. location ~ .*\.(php|php5)?$  {
  10.         proxy_pass http://127.0.0.1:8080;
  11.         include proxy.conf;
  12.         }
Code de copie
  1. proxy_connect_timeout 300s;
  2. proxy_send_timeout 900;
  3. proxy_read_timeout 900;
  4. proxy_buffer_size 32k;
  5. proxy_buffers 4 64k;
  6. proxy_busy_buffers_size 128k;
  7. proxy_redirect off;
  8. proxy_hide_header Vary;
  9. proxy_set_header Accept-Encoding '';
  10. proxy_set_header Referer $http_referer;
  11. proxy_set_header Cookie $http_cookie;
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Code de copie
Il existe 2 modules pour obtenir de vraies adresses IP en Apache :
mod_rpaf: Apache-2.2 est pris en charge ; Apache-2.4 n’est pas pris en charge. Il existe de nombreux tutoriels en ligne
mod_remoteip: Apache-2.4 est livré avec des modules ; Support Apache-2.2 ;Recommander
Apache-2.2.25
mod_rpaf module
  1. wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
  2. tar -xzvf mod_rpaf-0.6.tar.gz
  3. cd mod_rpaf-0.6/
  4. /usr/local/apache/bin/apxs  -i -c -n mod_rpaf-2.0.slo mod_rpaf-2.0.c
Code de copie
Ajouter une configuration Apache
  1. vi  /usr/local/apache/conf/httpd.conf
  2. Include conf/extra/httpd-rpaf.conf
  3. vi /usr/local/apache/conf/extra/httpd-rpaf.conf

  4. LoadModule rpaf_module        modules/mod_rpaf-2.0.so
  5. RPAFenable On
  6. RPAFsethostname On
  7. RPAFproxy_ips 127.0.0.1 10.8.0.110 # 代理服务器的ip地址(记得做相应修改)
  8. RPAFheader X-Forwarded-For
Code de copie
Note : Ajoutez l’adresse IP du serveur proxy après RPAFproxy_ips, et remplissez quelques indices
Test
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Code de copie
mod_remoteip
La configuration mod_remoteip sous Apache-2.2 est la suivante :
Installation
  1. wget https://github.com/ttkzw/mod_remoteip-httpd22/raw/master/mod_remoteip.c
  2. /usr/local/apache/bin/apxs -i -c -n mod_remoteip.so mod_remoteip.c
Code de copie
Modifier le profil :
  1. vi /usr/local/apache/conf/httpd.conf
  2. Include conf/extra/httpd-remoteip.conf
  3. vi /usr/local/apache/conf/extra/httpd-remoteip.conf
  4. LoadModule remoteip_module modules/mod_remoteip.so
  5. RemoteIPHeader X-Forwarded-For
  6. RemoteIPInternalProxy 127.0.0.1
Code de copie
Test:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Code de copie
La configuration Apache-2.4 mod_remoteip en plus de ce qui précède (le module avec son propre mod_remoteip n’a pas besoin d’être installé), il faut aussi modifier le format du journal (en se remettant longtemps en suspension)
  1. LogFormat "%h %a %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
  2. LogFormat "%h %a %l %u %t "%r" %>s %b" common
  3. LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedi
Code de copie

Ajouter %a au format du journal





Précédent:J’ai entendu dire que Du Niang peut encore jouer comme ça ! Tu trembles ! Serre la main !
Prochain:Mode proxy nginx, obtenir l’adresse IP réelle du client
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com