環境 centos,docker,nginx,.net 5
1. 配置Nginx
server {
listen 80;
server_name www.xxx.cn;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr; #爲防止Ip僞造 如多個代理在最外層設置 remote_addr 其他代理設置$proxy_add_x_forwarded_for;
proxy_pass http://localhost:xxx/;
}
error_page 500 502 503 504 /50x.html;
}
修改完成後nginx -s reload 重新加載配置文件
2. 代碼添加配置
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
3. 使用原始方法獲取IP地址
var ip = context.HttpContext.Connection.RemoteIpAddress.ToString()