nginx反向代理
后,php通过$_SERVER['REMOTE_ADDR']获取ip时,获取到的ip都是nginx的ip 127.0.0.1
。这时需要nginx去获取客户端的ip
地址,并设置到反向代理头
中,供php获取使用。
一、之前nginx配置
server{ listen 80; charset utf-8; location = /test{ proxy_pass http://127.0.0.1:8080/index.php; } }
二、设置反向代理头ip信息后的nginx配置
server{ listen 80; charset utf-8; location = /test{ proxy_pass http://127.0.0.1:8080/index.php; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; } }
在反向代理中增加
:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
代码后,就能获取到客户端真实ip。