Проблеми mod_rpaf з фронтальним кодом Nginx, ззаду Apache після оновлення Ubuntu


10

Я запускаю фронт-енд Nginx для статичних файлів і звертаюсь до сервера Apache для PHP та пасажира, використовуючи mod_rpaf Apache для встановлення правильної віддаленої IP-адреси на бекенді. Все працювало чудово, поки я не перейшов на Ubuntu 12.04 (точно). Тепер 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()тесті 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

Просто займався цим самим. У п’ятницю було підтверджено помилку Ubuntu. Ви можете знову працювати, змінивши:

<IfModule mod_rpaf.c>

до

<IfModule mod_rpaf-2.0.c>

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


У мене була точно така ж проблема після оновлення до 12.04, і я втратив пів дня на питання, перш ніж знайти цю посаду. Дякую!
Кубер Сапарев

І сама помилка, для повноти: bugs.launchpad.net/ubuntu/+source/libapache2-mod-rpaf/+bug/…
thor

1
Для тих, хто прийде на цю посаду після оновлення до 14.04, це виправлення більше не застосовуватиметься; замість цього ви хочете використовувати mod_remoteipзамість mod_rpaf.
Стефан Магнусон

1

Мода_rpaf, здається, у Debian Jessie застаріла, і подальший розвиток зупинився. Перейдіть на mod_remoteip, який є модулем за замовчуванням у Debian Jessie.


0

Просто оновлення цього питання. Формат змінних, які 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.