一、.net core 获取客户端IP ,获取完整URL
C#代码
string ip = HttpContext.Connection.RemoteIpAddress.ToString();
string url = Request.GetDisplayUrl();
说明:上面两行代码我们都知道,但是如果你是使用代理服务器托管.net core网站的,例如nginx,会出现你获取只是代理服务器IP,而不是真实客户的IP。
二、解决问题
1.配置nginx 三个转接头Host 、X-Forwarded-For、X-Forwarded-Proto
2.重启nginx 服务器
server {
listen 80;
server_name www.***.com;
add_header X-Frame-Options "SAMEORIGIN"; #保护Nginx 免受点击劫持的侵害
add_header X-Content-Type-Options "nosniff"; #可阻止大部分浏览器通过MIME方式探查来自已声明内容类型的响应
location / {
proxy_pass http://172.18.0.12:5000;
proxy_set_header Host $host; #配置请求转接头1
proxy_set_header X-Forwar