как заставить nginx и apache работать вместе для показа реального IP-адреса клиента? - PullRequest
1 голос
/ 26 января 2012

Я пытаюсь настроить сервер apache за прокси-сервером nginx. Экземпляры nginx и apache находятся на двух разных хостах. Оба сервера работают под управлением Debian.

У меня есть это в nginx.conf на переднем сервере (192.168.1.30)

 server {

    listen   80; ## listen for ipv4
    listen   [::]:80 default ipv6only=on; ## listen for ipv6

    server_name  front.tld.org;  #real hostname changed

    access_log  /var/log/nginx/localhost.access.log;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    location / {
      proxy_pass http://192.168.1.1:80;  #local IP of the server running apache
    }

На хосте apache (192.168.1.1), /etc/apache2/mods-enabled/rpaf.conf:

<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.30
RPAFheader X-Real-IP
</IfModule>

Я перезапустил службы nginx и apache2. Однако в apache2 /var/log/apache2/access.log у меня всегда есть исходящий IP от 192.168.1.30 (прокси) вместо реального клиента.

Что-то не так? Есть идеи, как отлаживать?

Ответы [ 2 ]

1 голос
/ 26 апреля 2013

Для записи, есть что-то странное с файлами конфигурации Debian squeeze.

Работал следующий конфиг:

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 172.27.6.74 172.27.7.17 127.0.0.1 ::1
RPAFheader X-Forwarded-For

(пришлось удалить <IfModule mod_rpaf.c>)

0 голосов
/ 28 января 2012

То, что вы видите в данный момент, является правильным поведением. Потому что только ваши приложения (запущенные на Apache) видят настоящий IP. Например, установите пример приложения, такого как WordPress, и установите аналитику в реальном времени, такую ​​как Piwik. Вставьте код Piwik в нижний колонтитул WordPress и посетите ваш сайт WordPress (после выхода из системы). Теперь Piwik будет показывать реальный IP вместо того, что установлено в RPAFproxy_ips.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...