nginx 7层http代理获取真实ip
举个例子,Nginx 中的代理配置假如是这样配置的:
location / {
proxy_http_version 1.1;
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_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:8080$request_uri;
proxy_redirect off;
}
代理的配置中添加了一个自定义 header X-Real-IP
,所以你可以在目标服务器中通过 X-Real-IP
这个 header 取到用户的真实 IP。
或者也可以通过取 X-Forwarded-For
,这个 header 比较常见,一般的负载均衡器也会添加这个 header 以传递用户的真实 IP。
时来天地皆同力,运去英雄不自由