当前位置: 首页 > news >正文

长沙网站推广排名武汉武汉最新

长沙网站推广排名,武汉武汉最新,做网站 当站长,上海做网站及推广文章目录 前言问题原因解决方案修改Nginx配置文件SpringBoot代码实现 前言 项目部署后发现服务端无法获取到客户端真实的IP地址,这是怎么回事呢?给我都整懵逼了,经过短暂的思考,我发现了问题的真凶,那就是我们使用了N…

文章目录

  • 前言
  • 问题原因
  • 解决方案
    • 修改Nginx配置文件
    • SpringBoot代码实现

前言

项目部署后发现服务端无法获取到客户端真实的IP地址,这是怎么回事呢?给我都整懵逼了,经过短暂的思考,我发现了问题的真凶,那就是我们使用了Nginx作的请求转发,这才导致了获取不到客户端真实的IP地址,害,看看我是怎么解决的吧!

问题原因

客户端请求数据时走的是Nginx反向代理,默认情况下客户端的真实IP地址会被其过滤,使得SpringBoot程序无法直接获得真实的客户端IP地址,获取到的都是Nginx的IP地址。

解决方案

通过更改Nginx配置文件将客户端真实的IP地址加到请求头中,这样就能正常获取到客户端的IP地址了,下面我一步步带你看看如何配置和获取。

修改Nginx配置文件

在需要做请求转发的配置里添加下面的配置

#这个参数设置了HTTP请求头的Host字段,host表示请求的Host头,也就是请求的域名。通过这个设置,Nginx会将请求的Host头信息传递给后端服务。
proxy_set_header Host $host;
#这个参数设置了HTTP请求头的X−Real−IP字段,remote_addr表示客户端的IP地址。通过这个设置,Nginx会将客户端的真实IP地址传递给后端服务
proxy_set_header X-Real-IP $remote_addr;
#这个参数设置了HTTP请求头的 X-Forwarded-For字段,"X-Forwarded-For"是一个标准的HTTP请求头,用于表示HTTP请求经过的代理服务器链路信息,proxy_add_x_forwarded_for表示添加额外的服务器链路信息。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

修改后我的nginx.conf中的server如下所示
nginx复制代码

server {listen 443 ssl;server_name xxx.com;ssl_certificate "ssl证书pem文件";ssl_certificate_key "ssl证书key文件";ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {root   前端html文件目录;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root html;}# 关键在下面这个配置,上面的配置自己根据情况而定就行location /hello{proxy_pass http://127.0.0.1:8090;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

SpringBoot代码实现

第一种方式:在代码中直接通过X-Forwarded-For获取到真实IP地址

@Slf4j
public class CommonUtil {/*** <p> 获取当前请求客户端的IP地址 </p>** @param request 请求信息* @return ip地址**/public static String getIp(HttpServletRequest request) {if (request == null) {return null;}String unknown = "unknown";// 使用X-Forwarded-For就能获取到客户端真实IP地址String ip = request.getHeader("X-Forwarded-For");log.info("X-Forwarded-For:" + ip);if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");log.info("Proxy-Client-IP:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");log.info("WL-Proxy-Client-IP:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");log.info("HTTP_X_FORWARDED_FOR:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED");log.info("HTTP_X_FORWARDED:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_CLUSTER_CLIENT_IP");log.info("HTTP_X_CLUSTER_CLIENT_IP:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");log.info("HTTP_CLIENT_IP:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_FORWARDED_FOR");log.info("HTTP_FORWARDED_FOR:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_FORWARDED");log.info("HTTP_FORWARDED:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_VIA");log.info("HTTP_VIA:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader("REMOTE_ADDR");log.info("REMOTE_ADDR:" + ip);}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();log.info("getRemoteAddr:" + ip);}return ip;}

第二种方式:在application.yml文件中加以下配置,直接通过request.getRemoteAddr()并可以获取到真实IP

server:port: 8090tomcat:#Nginx转发 获取客户端真实IP配置remoteip:remote-ip-header: X-Real-IPprotocol-header: X-Forwarded-Proto
http://www.tj-hxxt.cn/news/66393.html

相关文章:

  • 网站建设培训学校广州搜索引擎优化策略不包括
  • 网站引导动画怎么做的中文搜索引擎排名
  • 怎么用2级目录做网站新网站推广最直接的方法
  • WordPress教育类响应式主题重庆seo网站排名
  • phpmysql动态网站开发网站推广排名哪家公司好
  • 如何在局域网上做网站怎样让自己的网站排名靠前
  • 婚恋交友网站制作分类达人介绍
  • 班级网站开发与设计快手seo关键词优化
  • 北京网站建设方案报价网页设计模板网站免费
  • 阿里云网站目录代刷网站推广链接免费
  • 福州金山网站建设手机网站建设价格
  • 全国加盟网站建设东莞市网络seo推广企业
  • 网站 做实名认证吗网站平台有哪些
  • 辽宁鞍山玉佛苑淘宝seo优化是什么
  • 制造业外贸营销网站建设成全视频免费观看在线看
  • 广州专业做网站排名哪家好免费拓客软件哪个好用
  • 信誉好的武汉网站建设青岛网站建设培训学校
  • 南京网站设计制作流量网站
  • 凡科网制作网站教程二级域名注册平台
  • 织梦模板下载商城网站模板(高端大气上档次:带数据)企业网站推广策划书
  • 有哪些做ppt的网站有哪些互联网推广平台
  • 深圳app网站建设陈俊兵软文营销网站
  • 网站制作费可以做业务宣传费国家提供的免费网课平台
  • 襄阳网站建设公司百度快照推广一年要多少钱
  • 什么是b2c网站关键词自动生成器
  • 兰州论坛网站建设深圳市网络seo推广平台
  • 网络营销建议seo月薪
  • p2p网站建设 上海软文营销怎么做
  • 网站规划与建设是什么意思珠海网站建设优化
  • app下载安装app临沂seo