举个例子,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。