代理之后的远程真实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"';

 

posted @ 2022-08-16 09:47  stweily  阅读(110)  评论(0编辑  收藏  举报