problemas mod_rpaf con Nginx front, Apache back-end después de la actualización de Ubuntu


10

Estoy ejecutando un front-end Nginx para archivos estáticos, y proxy a un backend de Apache para PHP y Passenger, usando mod_rpaf de Apache para configurar la dirección IP remota correcta en el backend. Todo funcionó bien hasta que actualicé a Ubuntu 12.04 (Precise). Ahora Apache informa que todas las conexiones provienen de 127.0.0.1.

Aquí está la configuración relevante. Nada aquí cambió con la actualización.

Nginx:

proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;

mod_rpaf:

<IfModule mod_rpaf.c>
    RPAFenable On
    RPAFsethostname On
    RPAFproxy_ips 127.0.0.1 ::1
    RPAFheader X-Forwarded-For
</IfModule>

Estoy usando %{X-Forwarded-For}imi directiva Apache LogFormat y los registros de acceso muestran la dirección remota correcta, así que sé que Nginx está pasando la dirección correctamente.

En una phpinfo()prueba, HTTP_X_FORWARDED_FOR muestra la dirección remota correcta, pero REMOTE_ADDR es 127.0.0.1. Esto también se refleja en las aplicaciones PHP, como los comentarios de WordPress.

Intenté cambiar Nginx y mod_rpaf a X-Real-IP sin ningún efecto.

¿Cambió algo que me perdí?

Información de versión relevante, todo lo instalado desde el repositorio de Ubuntu:

Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6

Respuestas:


10

Solo he estado lidiando con esto yo mismo. Hubo un error de Ubuntu confirmado el viernes. Puede hacer que las cosas vuelvan a funcionar cambiando:

<IfModule mod_rpaf.c>

a

<IfModule mod_rpaf-2.0.c>

en /etc/apache2/mods-available/rpaf.conf


Tuve exactamente el mismo problema después de la actualización a 12.04 y perdí medio día en el tema antes de encontrar esta publicación. ¡Gracias!
Kouber Saparev

Y el error en sí mismo, para completar: bugs.launchpad.net/ubuntu/+source/libapache2-mod-rpaf/+bug/…
thor

1
Para cualquiera que vaya a esta publicación después de actualizar a 14.04, esta corrección ya no se aplicará; en su lugar, querrá usar en mod_remoteiplugar de mod_rpaf.
Stefan Magnuson

1

Parece que mod_rpaf ha quedado en desuso en Debian Jessie, y el desarrollo posterior se detuvo. Cambie a mod_remoteip, que es un módulo predeterminado en Debian Jessie.


0

Solo una actualización de esta pregunta. El formato de las variables que utiliza mod_rpaf ha cambiado: Apache se negará a comenzar con las enumeradas anteriormente actualmente (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader).

El nuevo formato es el siguiente:

LoadModule              rpaf_module modules/mod_rpaf.so
RPAF_Enable             On
RPAF_ProxyIPs           127.0.0.1 10.0.0.0/24
RPAF_SetHostName        On
RPAF_SetHTTPS           On
RPAF_SetPort            On
RPAF_ForbidIfNotProxy   Off
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.