需求

最近公司在做全站https,架构上面有Nginx+tomcat Nginx+php,且nginx配置了ssl,tomcat和php项目使用https协议

但是,发送的是https url请求,php和tomcat的log里面记录的都是http的请求。

解决方法很简单,只需要分别配置一下 Nginx 和 Tomcat 就好了,而不用改程序。

配置 Nginx 的转发选项:
server {listen       443 ssl http2;server_name  new.m.abc.com m.abc.com;ssl on;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:10m;ssl_dhparam /etc/nginx/conf.d/ssl/dhparam.pem;ssl_certificate     /etc/nginx/conf.d/ssl/abc.com.crt;ssl_certificate_key /etc/nginx/conf.d/ssl/abc.com.key;add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";access_log  /var/log/nginx/new.m.abc.log main;set $web_url $host;if ($request_uri ~* /h5/index.html){rewrite ^/(.*)$ http://m.abc.com permanent;}limit_req zone=anti_spider burst=1 nodelay;if ($http_user_agent ~* "qihoobot|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp Ch
ina|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot"){set $anti_spider $http_user_agent;}location / {proxy_pass         http://web.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;proxy_set_header X-Forwarded-Proto $scheme;set $domain default;}
}

proxy_set_header X-Forwarded-Proto $scheme;

配置Tomcat server.xml 的 Engine 模块下配置一个 Valve:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto"
protocolHeaderHttpsValue="https"/>

配置双方的 X-Forwarded-Proto 就是为了正确地识别实际用户发出的协议是 http 还是 https。

测试就都变为正确的结果了,就像用户在直接访问 Tomcat 一样。

如果是php提供服务,无需修改php代码及配置。

转载于:https://www.cnblogs.com/xiewenming/p/7380165.html

Nginx配置X-Forwarded-Proto相关推荐

  1. nginx配置 负载均衡_如何配置NGINX负载平衡

    nginx配置 负载均衡 The load balancing is the process of distributing traffic to multiple instances of an a ...

  2. 五十、Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL

    五十.Nginx负载均衡.ssl原理.生成ssl密钥对.Nginx配置ssl 一.Nginx负载均衡 代理一台机器叫代理,代理两台机器就可以叫负载均衡. 代理服务器后有多个web服务器提供服务的时候, ...

  3. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  4. 快速通过nginx配置域名访问

    配置nginx进行域名访问文件 在nginx安装目录下的conf目录下新建一个配置文件,比如你新加的域名为admin.hello.com,你希望通过这个域名访问admin项目,那么新建一个admin. ...

  5. 前后端分离nginx配置,同时解决跨域问题

    背景 现在,web开发的前后端分离技术越来越火爆,由于最近的公司官网使用了前后端分离的方案,这里就来记录一下前后端分离的项目部署.这里我们使用的前端框架是Vue.js,后台使用Laravel7提供数据 ...

  6. Nginx 配置清单(一篇够用)

    欢迎关注方志朋的博客,回复"666"获面试宝典 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集 ...

  7. docker nginx 配置负载均衡

    在上篇的文章中我们介绍了docker nginx配置简单的代理 在这篇文章我们介绍docker 利用nginx配置负载均衡 所谓的负载均衡是两台服务器,或者是多台服务器上面部署项目,但是访问的方式是通 ...

  8. python修改nginx配置文件_zookeeper 动态管理nginx配置

    假设我们有一个场景,所有服务器共享同一份配置文件,我们肯定不可能单独手动维护每台服务器,这时可以利用zookeeper的配置管理功能. 环境:python + nginx + zookeeper 目的 ...

  9. Nginx配置使用积累[不断更新]

    由于网上Nginx的文档太少,很多特性只能自己去尝试,遂记录Nginx的一些使用知识. 以下nginx.conf配置文件中的配置: 1.Nginx不记录错误日志: error_log /dev/nul ...

  10. vue路由history模式,nginx配置

    nginx配置内容 # For more information on configuration, see: # * Official English Documentation: http://n ...

最新文章

  1. 后台运行定位,音频,网络电话
  2. 3.25Day06元组、字典、集合常用及内置方法
  3. 统计学习笔记(3)——k近邻法与kd树
  4. DCMTK:从DICOM封装的PDF存储对象中提取PDF文件
  5. c语言编程房屋中介系统,房地产经纪人优题库app下载-房地产经纪人优题库app安卓版下载v4.6.0 - 非凡软件站...
  6. mysql之union合并查询
  7. 技术人必备的碎片化时间学习工具
  8. memcached全面剖析–5. memcached的应用和兼容程序
  9. (疑似问题)用IDM某些版本可能会导致系统永久性开机黑屏
  10. bootstrap日期插件的使用
  11. PrepareStatement对象
  12. 优锘科技:森模型插件上新:BIM秒变轻量化,模板任选效果
  13. ubuntu美化--壁纸软件
  14. message_filters学习笔记
  15. vasp计算压电系数_求助DFTP算出来的压电系数 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  16. [4G5G专题-31]:物理层-物理信道、信号、映射概述
  17. 【2017/07】实验记录——SSSP
  18. 【PyTorch】03数据处理
  19. VMware虚拟网卡导致物理机浏览器DNS解析慢_浏览器正在解析主机
  20. 九宫格游戏(三阶积幻方)

热门文章

  1. 火了 2 年的服务网格究竟给微服务带来了什么?
  2. Java经典面试题整理及答案详解(八)
  3. 最吸量的手游ICON设计参考资料
  4. 来自Riot 的一份游戏美术教程(二):概念图
  5. Polygon 年度游戏之《巴巴是你》:解读纯粹的游戏乐趣
  6. pyecharts开篇(python可视化神器)
  7. The requested URL /nagios/cgi-bin/statusmap.cgi was not found on this server
  8. Oracle10g备份集压缩新特性(Backupset Compression)
  9. Oracle 外连接和 (+)号的用法
  10. 代码质量的几点新思考