nginx лак nginx php-fpm: реальный ip для _SERVER php ['REMOTE_ADDR']

Это конкретный вопрос.

Сервер Nginx (назовем его N1) прослушивает: 80 и пересылает лакировку с proxy_pass. Varnish прослушивает 127.0.0.1:6081 и пересылает Nginx (N2) на 8080. N2 обращается к сокету php-fpm.

N1<> В <>N2<> Р

N1:

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;

    proxy_pass http://varnish/;
    proxy_redirect off;
}

В настоящее время

$_SERVER['REMOTE_ADDR'] == '127.0.0.1'

желательно

$ _SERVER ['REMOTE_ADDR'] == 'Настоящий удаленный адрес'

1 ответ

Решение

Это конкретный ответ.;)

Вы можете добавить x-forwarded-for в N1, пропустив через лак и N2 в fastcgi:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Тогда в fastcgi params:

fastcgi_param REMOTE_ADDR $http_x_forwarded_for;
Другие вопросы по тегам