Это конкретный вопрос.
Сервер Nginx (назовите его N1) прослушивает: 80 и пересылает на лак с помощью proxy_pass. Varnish прослушивает 127.0.0.1:6081 и пересылает на Nginx (N2) на 8080. N2 обращается к сокету php-fpm.
N1 <> V <> N2 <> P
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'] == 'Настоящий удаленный адрес'
Это конкретный ответ. ;)
Вы можете добавить x-forwarded-for в N1, пропустить через varnish, а N2 - в fastcgi:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Затем в параметрах fastcgi:
fastcgi_param REMOTE_ADDR $http_x_forwarded_for;