Nginx反向代理后無法獲取客戶端真實IP地址怎么解決

當我們使用 nginx 代理轉發服務后,會發現我們無法獲取客戶端的真實ip地址,從而無法獲取客戶端的地理位置等信息。

1、原始配置文件如下

worker_processes??1;  events?{ ????worker_connections??1024; }  http?{ ????include???????mime.types; ????default_type??application/octet-stream;  ????sendfile????????on; ???? ????keepalive_timeout??65;  ????server?{ ????????listen???????80; ????????server_name??localhost;  ????????location?/?{ ????????????root???html; ????????????index??index.html?index.htm; ????????}  ????????error_page???500?502?503?504??/50x.html; ????????location?=?/50x.html?{ ????????????root???html; ????????} ????}  }

2、配置轉發后

worker_processes??1;  events?{ ????worker_connections??1024; }  http?{ ????include???????mime.types; ????default_type??application/octet-stream;  ????sendfile????????on; ???? ????keepalive_timeout??65;  ????server?{ ????????listen???????80; ????????server_name??localhost;  ????????location?/?{ ????????????root???html; ????????????index??index.html?index.htm; ????????} ???????? ????????#?代理轉發 ????????location?/api/{ ????????????proxy_set_header?Host?$http_host; ????????????proxy_set_header?X-Real-IP?$remote_addr; ????????????proxy_set_header?REMOTE-HOST?$remote_addr; ????????????proxy_set_header?X-Forwarded-For?$proxy_add_x_forwarded_for; ????????????proxy_set_header?Public-Network-URL?http://$http_host$request_uri; ????????????proxy_pass?http://localhost:8080/; ????????} ???????? ????????error_page???500?502?503?504??/50x.html; ????????location?=?/50x.html?{ ????????????root???html; ????????} ????}  }

這樣,我們就將客戶端的頭部信息一起轉發過去,就能獲取用戶的真實 IP 地址了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享