代理之后的远程真实IP
正常我们采用Nginx代理之后 ,API层获取的httpContext.GetRemoteIpAddressToIPv4()的逻辑返回的应该是代理Nginx的IP了.而这和我们最初设置相悖的,显然有时候这个需求是必然的.
帮记录一下相关这种的配制
配置localtion
location /api { limit_req zone=allipse burst=24000 nodelay; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'x-requested-with,content-type'; proxy_pass http://api; proxy_set_header Host $host; proxy_set_header Remote_Addr $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
配置log
log_format main 'RealIp: $proxy_add_x_forwarded_for - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$geoip2_data_country_code" "$geoip2_data_country_name" "$geoip2_data_city_name" "$upstream_addr" "$request_time" "$upstream_response_time"';