这是具体的问题。
一个Nginx服务器(称为N1)侦听:80,并通过proxy_pass转发清漆Varnish在127.0.0.1:6081侦听,并转发到8080上的Nginx(N2)。N2与php-fpm套接字进行通信。
N1 <> V <> 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'] =='真正的远程地址'
这是一个具体的答案。 ;)
你可以在N1中添加一个x-forwarded-for,让它通过varnish和N2到fastcgi:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
然后在fastcgi params:
fastcgi_param REMOTE_ADDR $http_x_forwarded_for;