Вопрос: Проблемы с mod_rpaf с фронтом Nginx, поддержка Apache после обновления Ubuntu


Я запускаю интерфейс Nginx для статических файлов и проксирование на сервер Apache для PHP и Passenger, используя mod_rpaf от Apache, чтобы установить правильный удаленный IP-адрес на сервере. Все работало нормально, пока я не перешел на Ubuntu 12.04 (Precise). Теперь Apache сообщает обо всех подключениях, полученных от 127.0.0.1.

Вот соответствующая конфигурация. При обновлении ничего не изменилось.

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>

я использую %{X-Forwarded-For}i в моей директиве Apache LogFormat, а журналы доступа - показывая правильный удаленный адрес, поэтому я знаю, что Nginx правильно передает адрес.

В phpinfo() test, HTTP_X_FORWARDED_FOR показывает правильный удаленный адрес, но REMOTE_ADDR - 127.0.0.1. Это также отражено в PHP-приложениях, таких как комментарии WordPress.

Я попытался переключить Nginx и mod_rpaf на X-Real-IP без эффекта.

Что-то изменилось, что я пропустил?

Соответствующая информация о версии, все, что установлено в репозитории Ubuntu:

Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6


10
2018-05-28 01:40


Источник




Ответы:


Просто занимался этим сам. В пятницу была подтверждена ошибка Ubuntu. Вы можете снова заставить все работать, изменив:

<IfModule mod_rpaf.c>

в

<IfModule mod_rpaf-2.0.c>

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


10
2018-05-28 18:55



Фантастично, что сделал трюк. Благодаря! - Kenn
У меня была такая же проблема после обновления до 12.04 и потеряла полдня на этом вопросе, прежде чем найти этот пост. Спасибо! - Kouber Saparev
И сама ошибка, для полноты: bugs.launchpad.net/ubuntu/+source/libapache2-mod-rpaf/+bug/... - thor
Для тех, кто приходит на этот пост после обновления до 14.04, это исправление больше не будет применяться; вместо этого вы захотите использовать mod_remoteip вместо mod_rpaf, - Stefan Magnuson


mod_rpaf, похоже, устарел в Debian Jessie, и дальнейшее развитие остановилось. Перейдите на mod_remoteip, который является модулем по умолчанию в Debian Jessie.


1
2017-10-09 15:56





Просто обновите этот вопрос. Изменен формат использования переменных mod_rpaf - Apache откажется начинать с перечисленных выше в настоящее время (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader).

Новый формат выглядит следующим образом:

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

0
2018-01-04 06:53