Различия

Показаны различия между двумя версиями страницы.


mod_remoteip [2022/10/21 22:45] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Как передать реальный IP для Apache, работающем за прокси NGiNX ======
 +Начиная с Apache 2.4.1, в него входит модуль mod_remoteip, который может перезаписывать удаленный IP-адрес. Я рекомендую использовать mod_remoteip вместо [[mod_rpaf|mod_rpaf]].
  
 +После того, как все настройки сервера в связке NGiNX + Apache сделаны, администратор сервера сталкивается с вопросом о том, как передать реальный IP пользователя web-серверу Apache, работающему за проксирующим [[NGiNX|NGiNX]]. В логи Апача пишутся IP не реальных пользователей, а IP локального NGiNX (127.0.0.1), то есть не несут никаких сведений о том, какой пользователь был на сайте.
 +===== Настройки Nginx =====
 +В локейшне с  proxy_pass, обычно как указано ниже, добавим строки
 +
 +<file bash>
 +    location ~ \.php$ {
 +        proxy_pass   http://127.0.0.1:8080;
 + # + добавить:
 + proxy_set_header Host $host;
 + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 + proxy_set_header X-Real-IP $remote_addr;
 +    }
 +</file>
 +После этой небольшой правки конфига NGiNX, нужно перезагрузить его, чтобы эти правки вступили в силу и начали работать на сервере. Для этого нужно ввести команду:
 +
 +<file>
 +service nginx restart
 +</file>
 +Если всё скопировано правильно, NGiNX тихо перезапустится. Можно переходить к донастройке Apache, чтобы он принимал и обрабатывал пробрасываемые данные с реальным IP пользователя.
 +===== Настройки Apache =====
 +Для того, чтобы Apache начал правильно воспринимать и главное, правильно обрабатывать реальный IP пользователя, пробрасываемый NGiNX, воспользуемся идущим в стандартном пакете Apache модулем remoteip (mod_rpaf устарел).
 +
 +Включить модуль remoteip в Ubuntu, Debian
 +<file bash>
 +a2enmod remoteip
 +</file>
 +
 +Вначале настроим работу модуля remoteip. Для этого в папке conf-available создадим файл remoteip.conf. Полный путь до этого файла:
 +
 +<file>
 +/etc/apache2/conf-available/remoteip.conf
 +</file>
 +
 +В этот файл запишем пару строчек:
 +
 +<file>
 +RemoteIPHeader X-Forwarded-For
 +RemoteIPTrustedProxy 127.0.0.1
 +</file>
 +Теперь всё это нужно подключить к Apache.
 +Подключим модуль remoteip к Apache. Но того мало, требуется применить настройки этого модуля. Для этого нужно выполнить команду:
 +<file bash>
 +a2enconf remoteip
 +</file>
 +Теперь модуль remoteip сконфигурирован и готов к работе. Осталось перезапустить Apache командой:
 +<file>
 +systemctl restart apache2
 +</file>
 +Готово! Все работает.
 +
 +<panel type="primary" title="Читайте также">
 +  * [[nginx_simple_example]]
 +</panel>

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!