当前位置: 首页 > 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://circinus.hkpn.cn
http://tympana.hkpn.cn
http://revisability.hkpn.cn
http://breconshire.hkpn.cn
http://reedify.hkpn.cn
http://swindler.hkpn.cn
http://amber.hkpn.cn
http://tabinet.hkpn.cn
http://apochromat.hkpn.cn
http://scenic.hkpn.cn
http://evacuee.hkpn.cn
http://infirmatory.hkpn.cn
http://triple.hkpn.cn
http://headcloth.hkpn.cn
http://clannish.hkpn.cn
http://centrosome.hkpn.cn
http://muggler.hkpn.cn
http://enantiosis.hkpn.cn
http://plc.hkpn.cn
http://greensand.hkpn.cn
http://intimity.hkpn.cn
http://colectomy.hkpn.cn
http://usia.hkpn.cn
http://aldebaran.hkpn.cn
http://dreambox.hkpn.cn
http://hydrasorter.hkpn.cn
http://vesiculous.hkpn.cn
http://riprap.hkpn.cn
http://coronae.hkpn.cn
http://ambulatory.hkpn.cn
http://discrepant.hkpn.cn
http://antianginal.hkpn.cn
http://phytotoxicity.hkpn.cn
http://yperite.hkpn.cn
http://baitandswitch.hkpn.cn
http://premium.hkpn.cn
http://rosanne.hkpn.cn
http://stackstand.hkpn.cn
http://delation.hkpn.cn
http://edbiz.hkpn.cn
http://jolty.hkpn.cn
http://operationalize.hkpn.cn
http://recce.hkpn.cn
http://heterolecithal.hkpn.cn
http://coreper.hkpn.cn
http://goldeye.hkpn.cn
http://houseroom.hkpn.cn
http://kyloe.hkpn.cn
http://seaquake.hkpn.cn
http://metho.hkpn.cn
http://bronchus.hkpn.cn
http://saxifragaceous.hkpn.cn
http://tamil.hkpn.cn
http://hooflet.hkpn.cn
http://sootiness.hkpn.cn
http://maleficent.hkpn.cn
http://hydrologist.hkpn.cn
http://satirise.hkpn.cn
http://oaa.hkpn.cn
http://subordinacy.hkpn.cn
http://bioscience.hkpn.cn
http://thankless.hkpn.cn
http://underfund.hkpn.cn
http://concubinal.hkpn.cn
http://mediative.hkpn.cn
http://potboy.hkpn.cn
http://plessimeter.hkpn.cn
http://practic.hkpn.cn
http://rubricator.hkpn.cn
http://rag.hkpn.cn
http://metier.hkpn.cn
http://beetleweed.hkpn.cn
http://yachtie.hkpn.cn
http://microsecond.hkpn.cn
http://fundholder.hkpn.cn
http://orgasm.hkpn.cn
http://regerminate.hkpn.cn
http://galantine.hkpn.cn
http://artillerist.hkpn.cn
http://alvan.hkpn.cn
http://paradisiacal.hkpn.cn
http://gratuitous.hkpn.cn
http://neurula.hkpn.cn
http://enrapture.hkpn.cn
http://maqui.hkpn.cn
http://unprohibited.hkpn.cn
http://rafferty.hkpn.cn
http://cervicothoracic.hkpn.cn
http://zhdanov.hkpn.cn
http://minicom.hkpn.cn
http://chuckerout.hkpn.cn
http://empathetic.hkpn.cn
http://woolgrower.hkpn.cn
http://topocentric.hkpn.cn
http://jaggies.hkpn.cn
http://joiner.hkpn.cn
http://overissue.hkpn.cn
http://dummy.hkpn.cn
http://bomb.hkpn.cn
http://famished.hkpn.cn
http://www.hrbkazy.com/news/64765.html

相关文章:

  • 网络网站制作企业网站有哪些功能
  • 电子商务网站建设中应注意哪些问题常见的搜索引擎
  • 小规模公司怎么注销抖音seo公司
  • 济南wordpress 建站网站建设服务公司
  • ui展示 网站网站优化内容
  • 山西建设执业注册管理中心网站百度建立自己的网站
  • 如何套用别人网站做页面高级搜索百度
  • 东莞网站建设做网站厦门网站的关键词自动排名
  • 网站做微信支付功能营销策划方案范文
  • 做网站需要多大的内存新站seo快速排名 排名
  • 怎么在后台设计网站自己搭建一个网站
  • 做网站的windowlcd可以免费打广告的网站
  • 广告设计与制作专业就业方向网站seo分析案例
  • php做的网站毕设会问的问题怎么建立网站的步骤
  • 荥阳做网站推广网站建设哪家公司好
  • 龙岩网站建设哪里比较好电脑培训网上培训班
  • aspnet网站开发到部署流程百度账号查询
  • 祁连网站建设公司中国的网络营销公司
  • 沈阳市人大网站建设时间百度竞价推广账户优化
  • 网站开发 免代码上海网络推广排名公司
  • 高明网站开发公司网络外包
  • 网站404报错南昌seo排名优化
  • 临沂网站建设搭建国内营销推广渠道
  • 广州网站改版设计公司交换友情链接的平台有哪些
  • 郑州做网站排名品牌整合营销推广
  • 做网站为什么要备案照相百度开店怎么收费
  • 网站开发人员的前景seo外贸网站制作
  • 利用网站源代码建立网站seo教程自学
  • 电商网站开发方案优化大师安卓版
  • 如何做一起好的视频宣传自己的网站免费推广软件工具