每个location中增加配置:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
解释以下上面的配置,以上配置是在Nginx反向代理的时候,添加一些请求Header。
1. Host包含客户端真实的域名和端口号;
2. X-Forwarded-Proto表示客户端真实的协议(http还是https);
3. X-Real-IP表示客户端真实的IP;
4. X-Forwarded-For这个Header和X-Real-IP类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的IP。
ASP.NET可以通过取header中X-Real-IP得到真实ip:RequestContext.HttpContext.Request.Headers.Get("X-Real-IP")