适用nginx代理之后,在服务端就获取不到客户端真实的ip了,需要添加一下参数
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理过程
添加位置如下:
server {
#侦听18105端口
listen 18105;
#定义使用 www.nginx.cn访问
server_name localhost;
#charset koi8-r;
省略。。。
location / {
root /home/webfile/wuliuyuan/dist;
index index.html index.htm;
# 动态页面
if ( !-e $request_filename) {
proxy_pass http://192.168.144.171:8106;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理过程
}
}
在服务端通过Request获取到客户端真实的ip地址代码如下:
private String getRemoteIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
来源:CSDN
作者:月月._.
链接:https://blog.csdn.net/lp840312696/article/details/104476752