服務器端使用sprignboot編寫,會將國內ip和國外ip分別跳轉到不一樣的連接(國內服務器)
配置域名之後,使用nginx代理轉發到該springboot應用的端口
最開始寫法以下:nginx
server {
listen 80;
server_name 配置的域名;
location / {
proxy_pass http://ip:port;
}
}
複製代碼
後面發現不管無何都是識別成國內的 ip
後面百度發現,使用 nginx 轉發會有一個代理服務器的 ip 過去
因而改爲以下:spring
server {
listen 80;
server_name 配置的域名;
location / {
proxy_pass http://ip:port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
複製代碼
就能夠實現國內外 i p跳轉到不一樣連接,將真實 ip 放到 header 中,後端經過識別真實Ip進行跳轉後端
具體可參照這篇文章 nginx proxy_set_header測試,查看分別在設置 X-Real-IP 和不設置 X-Real-IP 下獲取到的 ip 區別springboot