當我們使用 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