失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 服务器使用nginx做代理 通过HttpServletRequest获取请求用户真实IP地址

服务器使用nginx做代理 通过HttpServletRequest获取请求用户真实IP地址

时间:2022-12-25 22:23:48

相关推荐

服务器使用nginx做代理 通过HttpServletRequest获取请求用户真实IP地址

在使用nginx做代理时,服务端如果直接从X-Forwarded-For头部获取来源IP,将获取到nginx所在的ip地址,而不是请求的真实ip地址。

如何获取请求的真实IP地址

首先,在nginx配置中添加如下配置

server {listen 80;server_name www.wenki.info; #要访问的域名charset utf8;location / {proxy_pass http://server; proxy_set_header Host$host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}

从nginx中将请求来源IP添加到代理请求头部,然后使用命令重新加载配置

nginx -s reload

服务端使用以下代码即可获取请求主机真实IP地址

public static String realIP(HttpServletRequest request) {String xff = request.getHeader("x-forwarded-for");if (xff != null) {int index = xff.indexOf(',');if (index != -1) {xff = xff.substring(0, index);}return xff.trim();}return request.getRemoteAddr();}

如果觉得《服务器使用nginx做代理 通过HttpServletRequest获取请求用户真实IP地址》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。