Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 15623|Respuesta: 0

[Web] Nginx en el front-end y Apache en el back-end obtienen la dirección IP real del usuario

[Copiar enlace]
Publicado en 3/11/2014 9:46:05 | | |
Últimamente, en generalApache-2.2 yApache-2,4 para añadir a "Paquete de instalación de un solo clic de LNMP",NginxComo front-end, Apache solo puede obtener la dirección IP del front-end Nginx (127.0.0.1), pero no la dirección IP real del usuario.
Nginx está configurado de la siguiente manera:
  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.         }
Copiar código
  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;
Copiar código
Hay 2 módulos para obtener direcciones IP reales en Apache:
mod_rpaf: Apache-2.2 está soportado; Apache-2.4 no es compatible. Hay muchos tutoriales en línea
mod_remoteip: Apache-2.4 viene con módulos; soporte para Apache-2.2;Recomendar
Apache-2.2.25
mod_rpaf módulo
  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
Copiar código
Añadir configuración 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
Copiar código
Nota: Añade la dirección IP del servidor proxy después de RPAFproxy_ips y rellena algunos
Prueba
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Copiar código
mod_remoteip
La configuración mod_remoteip bajo Apache-2.2 es la siguiente:
Instalación
  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
Copiar código
Modificar el perfil:
  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
Copiar código
Prueba:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Copiar código
La configuración de Apache-2.4 mod_remoteip además de lo anterior (el módulo con su propio mod_remoteip no necesita ser instalado), también necesitas modificar el formato del registro (dejando de lado durante mucho tiempo).
  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
Copiar código

Añadir %a al formato de registro





Anterior:¡He oído que Du Niang todavía puede jugar así! ¡Tiembla! ¡Sacudón!
Próximo:Modo proxy nginx, obtener la dirección IP real del cliente
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com