SCROLL
Среднее время на прочтение: 2 мин.

Отображение реального IP-адреса для Apache за обратным прокси-сервером Nginx.

В продуктиве используется связка Nginx + Apache, где Nginx выступает в роли прокси-сервера для Apache. Рассмотрим как передавать реальный IP-адрес для Apache за обратным прокси-сервером Nginx.

JUQwJTlGJUQwJUJFJTIwJUQxJTgzJUQwJUJDJUQwJUJFJUQwJUJCJUQxJTg3JUQwJUIwJUQwJUJEJUQwJUI4JUQxJThFJTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQxJTgyJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUI5JTIwJUQxJTgxJUQwJUIyJUQxJThGJUQwJUI3JUQwJUJBJUQwJUI1JTJDJTIwJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQwJUI2JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwSVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJUQwJUIwJTIwJUQwJUIyJTIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUIwJUQxJTg1JTIwQXBhY2hlJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI4JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJBJUQxJTgxJUQwJUI4LSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyME5naW54LiUyMCVEMCVBNyVEMSU4MiVEMCVCRSUyMCVEMCVCRCVEMCVCMCVEMCVCQSVEMCVCQiVEMCVCMCVEMCVCNCVEMSU4QiVEMCVCMiVEMCVCMCVEMCVCNSVEMSU4MiUyMCVEMSU4MSVEMCVCQiVEMCVCRSVEMCVCNiVEMCVCRCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCRiVEMSU4MCVEMCVCOCUyMCVEMCVCMCVEMCVCRCVEMCVCMCVEMCVCQiVEMCVCOCVEMCVCNyVEMCVCNSUyMCVEMCVCQiVEMCVCRSVEMCVCMyVEMCVCRSVEMCVCMiUyMCVEMCVCMiVEMCVCNSVEMCVCMS0lRDElODElRDAlQjUlRDElODAlRDAlQjIlRDAlQjUlRDElODAlRDAlQjAlMjBBcGFjaGUu

Nginx

В файле конфигурации виртуального хоста в секцию location необходимо добавить следующие параметры:

location / {
JTIwJTIwJTIwJTIwJTIwLi4u
JTIwJTIwJTIwJTIwJTIwcHJveHlfc2V0X2hlYWRlciVDMiVBMEhvc3QlQzIlQTAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjRob3N0JTNC
     proxy_set_header X-Real-IP       $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
JTIwJTIwJTIwJTIwJTIwLi4u
}

Описание используемых директив:

  • proxy_set_header Host $host; — Передает оригинальный заголовок Host, чтобы проксируемый сервер знал, какой хост был запрошен клиентом.
  • proxy_set_header X-Real-IP $remote_addr; — Передает реальный IP-адрес клиента, чтобы конечный сервер знал, откуда пришел запрос.
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; — Передает цепочку IP-адресов всех прокси, через которые прошел запрос, включая реальный IP клиента.

После правки конфигурационных файлов перезапускаем Nginx. Лучше проверить конфигурацию перед перезагрузкой Nginx:

bmdpbnglMjAtdA==
c3lzdGVtY3RsJTIwcmVsb2FkJTIwbmdpbng=

Apache

JUQwJTkyJTIwQXBhY2hlJTIwMi40JTIwJUQwJUIyJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQxJTgyJTIwJUQwJUJDJUQwJUJFJUQwJUI0JUQxJTgzJUQwJUJCJUQxJThDJUMyJUEwbW9kX3JlbW90ZWlwJTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUI5JTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUI1JUQxJTgyJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQxJThCJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJTgzJUQwJUI0JUQwJUIwJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwSVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxLiUyMCVEMCU5RCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOCVEMCVCQyUyMCVEMCVCNSVEMCVCMyVEMCVCRSUyMCVEMSU4NyVEMSU4MiVEMCVCRSVEMCVCMSVEMSU4QiUyMCVEMCVCRSVEMCVCRCUyMCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCRCVEMCVCOCVEMCVCQyVEMCVCMCVEMCVCQiUyMCVEMCVCRiVEMSU4MCVEMCVCRSVEMCVCMSVEMSU4MCVEMCVCRSVEMSU4MSUyMElQLSVEMCVCMCVEMCVCNCVEMSU4MCVEMCVCNSVEMSU4MSVEMCVCMCUyMCVEMSU4MSUyMCVEMCVCRiVEMSU4MCVEMCVCRSVEMCVCQSVEMSU4MSVEMCVCOC0lRDElODElRDAlQjUlRDElODAlRDAlQjIlRDAlQjUlRDElODAlRDAlQjAlMjBOZ2lueC4=

Создаем конфигурацию для модуля mod_remoteip. Выполняем команду:

Y2F0JTIwJTNDJTNDJTIwRU9GJTIwJTNFJTIwJTJGZXRjJTJGYXBhY2hlMiUyRmNvbmYtYXZhaWxhYmxlJTJGcmVtb3RlaXAuY29uZg==
JTNDSWZNb2R1bGUlMjByZW1vdGVpcF9tb2R1bGUlM0U=
        RemoteIPHeader X-Forwarded-For
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmVtb3RlSVBUcnVzdGVkUHJveHklMjAxMjcuMC4wLjE=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmVtb3RlSVBJbnRlcm5hbFByb3h5JTIwMTI3LjAuMC4x
JTNDJTJGSWZNb2R1bGUlM0U=
EOF
В случае если у вас проси-серве Nginx и Apache разнесены по разным серверам, то в параметре RemoteIPInternalProxy необходимо указать IP-адрес прокси-сервера.

Активируем модуль mod_remoteip и созданную конфигурацию:

a2enmod remoteip
YTJlbmNvbmYlMjByZW1vdGVpcA==

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQxJTgyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQwJUIyJTIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUIwJUQxJTg1JTIwQXBhY2hlJTIwJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQwJUI2JUQwJUIwJUQwJUJCJUQwJUI4JUQxJTgxJUQxJThDJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JUQwJUIwJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJUQxJThCJUQwJUI1JTIwSVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJUQwJUIwJTIwJUQwJUJBJUQwJUJCJUQwJUI4JUQwJUI1JUQwJUJEJUQxJTgyJUQwJUJFJUQwJUIyJTJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTgyJTIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUJFJUQwJUIyLiUyMCVEMCU5MiUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiVEMCVCNSVDMiVBMCUyRmV0YyUyRmFwYWNoZTIlMkZhcGFjaGUyLmNvbmYlMkMlMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQjIlRDAlQkUlRDAlQjQlRDAlQjglRDAlQkMlMjAlRDAlQkElMjAlRDAlQjIlRDAlQjglRDAlQjQlRDElODMlMjAlRDAlQkYlRDAlQjAlRDElODAlRDAlQjAlRDAlQkMlRDAlQjUlRDElODIlRDElODAlRDElOEIlM0E=

/etc/apache2/apache2.conf
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
TG9nRm9ybWF0JTIwJTIyJTI1YSUyMCUyNWwlMjAlMjV1JTIwJTI1dCUyMCU1QyUyMiUyNXIlNUMlMjIlMjAlMjUlM0VzJTIwJTI1TyUyMCU1QyUyMiUyNSU3QlJlZmVyZXIlN0RpJTVDJTIyJTIwJTVDJTIyJTI1JTdCVXNlci1BZ2VudCU3RGklNUMlMjIlMjIlMjBjb21iaW5lZA==
LogFormat "%a %l %u %t \"%r\" %>s %O" common
TG9nRm9ybWF0JTIwJTIyJTI1JTdCUmVmZXJlciU3RGklMjAtJTNFJTIwJTI1VSUyMiUyMHJlZmVyZXI=
LogFormat "%{User-agent}i" agent

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUI4JUQwJUI3JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI5JTJDJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI2JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJTgzJTIwYXBhY2hlJTNB

systemctl reload apache2
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.