nginx获取源地址
距离:通常上网访问路径(比如说用阿里云主机): client(172.25.0.1) --> ADSL(拨号上网192.168.0.1) --> cdn(10.0.0.1) --> SLB(阿里云负载11.0.0.1) --> nginx(12.0.0.1)
nginx需要重新编译一个模块
./configure --prefix=/usr/local/nginx --with-http_realip_module
vim nginx.conf
#在配置最后添加虚拟主机
server {
listen 80;
server_name server1.example.org;
set_real_ip_from 172.25.136.1;
real_ip_header X-Forwarded-For;
real_ip_recursive on; ##这里off就获取不到源地址,可以先改为off看效果,再打开
location / {
return 200 "client real ip: $remote_addr\n";
}
}
测试:curl -H "X-Forwarded-For: 1.1.1.1,172.25.88.1" server1
##X-Forwarded-For可以保存每一级的ip头结果可以获取到1.1.1.1这个ip