vhost example configurar apache redirect proxypass

example - Apache ProxyPass: cómo preservar la dirección IP original



reverse proxy apache vhost (5)

Esto tiene una explicación más elegante y más de una posible solución. http://kasunh.wordpress.com/2011/10/11/preserving-remote-iphost-while-proxying/

La publicación describe cómo usar un módulo de Apache popular y uno menos conocido para preservar el host / ip en una configuración que involucra proxying.

Use el módulo mod_rpaf, instálelo y habilítelo en el servidor back-end y agregue las siguientes directivas en la configuración del módulo. RPAFable en
RPAFsethostname activado
RPAFproxy_ips 127.0.0.1

(Edición de 2017) Ubicación actual de mod_rpaf: https://github.com/gnif/mod_rpaf

Estamos utilizando ProxyPass para redirigir todas las solicitudes "/ r" a jboss en el puerto 18080 de la siguiente manera:

ProxyPreserveHost on ProxyPass /r http://localhost:18080/redirectService/ ProxyPassReverse /r http://localhost:18080/redirectService/

Pero eso hace que la dirección IP registrada en el registro de acceso de jboss sea "127.0.0.1". ¿Alguien sabe cómo podemos preservar la IP original de donde vino la solicitud en HttpServletRequest? Queremos acceder desde la solicitud de servlet jboss en doGet ()


La respuesta de JasonW está bien. Pero desde apache httpd 2.4.6 hay una alternativa: mod_remoteip

Todo lo que debes hacer es:

  1. Puede ser que deba instalar el paquete mod_remoteip
  2. Habilitar el módulo:

    LoadModule remoteip_module modules/mod_remoteip.so

  3. Agregue lo siguiente a su configuración httpd de apache. Tenga en cuenta que debe agregar esta línea no a la configuración del servidor proxy. Debe agregar esto a la configuración del servidor httpd de destino proxy (el servidor detrás del proxy):

    RemoteIPHeader X-Forwarded-For

Consulte en http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html para obtener más información y más opciones.



Si está utilizando el proxy inverso de Apache para servir una aplicación que se ejecuta en un puerto de host local, debe agregar una ubicación a su host virtual.

<Location /> ProxyPass http://localhost:1339/ retry=0 ProxyPassReverse http://localhost:1339/ ProxyPreserveHost On ProxyErrorOverride Off </Location>

Para obtener la dirección IP, tenga las siguientes opciones

console.log(">>>", req.ip);// this works fine for me returned a valid ip address console.log(">>>", req.headers[''x-forwarded-for''] );// returned a valid IP address console.log(">>>", req.headers[''X-Real-IP''] ); // did not work returned undefined console.log(">>>", req.connection.remoteAddress );// returned the loopback IP address

Entonces, use req.ip o req.headers [''x-forward-for'']


Si tiene la capacidad para hacerlo, recomendaría usar ya sea mod-jk o mod-proxy-ajp para pasar solicitudes de Apache a JBoss. El protocolo AJP es mucho más eficiente en comparación con el uso de solicitudes de proxy HTTP y, como beneficio, JBoss verá que la solicitud proviene del cliente original y no de Apache.