вторник, 18 июня 2013 г.

X-Forwarded-For при использовании Nginx + Apache (+LogFormat)

При использовании связки Nginx(proxy)+Apache, в Apache всесто реального IP клиента передается IP nginx. Что мешает чтению логов и написанию нужного кода.

В виртуал хосте nginx, добавляем proxy_set_header
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://192.168.100.102:8882;
}

На сервере с Apache2 устанавливаем mod-rpaf
aptitude install libapache2-mod-rpaf

# vim /etc/apache2/mods-available/rpaf.conf
RPAFenable On # включаем механизм
RPAFsethostname On # включаем передачу заголовка X-Host
RPAFproxy_ips 127.0.0.1 # указываем адрес "front-end"

Меняем формат логов
# vim /etc/apache2/apache2.conf
LogFormat "%v:%p %{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O" common

Осталось рестартануть apache
/etc/init.d/apache2 restart

Комментариев нет:

Отправить комментарий