【发布时间】:2020-07-15 18:00:40
【问题描述】:
我将使用 _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString() 获取客户端 IP 但我得到了 127.0.0.1 或 ::1 。 我的网络服务器是 nginx,具有以下设置:
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
}
我的代码:
_httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString(); 将返回 127.0.0.1 或 ::1
我在配置方法中添加了以下代码:
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
【问题讨论】:
标签: asp.net-core nginx centos