Я запускаю фронт-енд 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