玖叶教程网

前端编程开发入门

nginx配置https代理spring boot开发的网站(非前后端分离)

公司有个内部使用的网站,使用springboot开发的,是传统的服务端渲染的(thymleaf)。访问入口是http://ip:port的方式,今天领导说是给这个系统分配一个域名,要求使用https访问,心想这不简单嘛,给nginx添加一个server就搞定了,解析好域名,咔咔几下配置nginx,搞定!结果发现没有这么简单,首页是打开了,输入账号密码点击登录按钮没反应,F12看了下,接口地址是https的,后端响应却是http,网上好了好几篇文章最终完美解决,特意记录一下过程仅供有同样需要的小伙伴参考:

nginx的配置需要增加下面几行(增加在location中):

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;

重启nginx后我们后端的tomcat还需要增加配置,由于我使用的是springboot的内嵌tomcat,在application.yml中增加如下配置:

server:
  tomcat:
    protocol-header: X-Forwarded-Proto
    protocol-header-https-value: https
    remote-ip-header: X-Forwarded-For

如果tomcat是使用的传统的独立tomcat,需要在server.xml 的 Engine 模块下配置一个 Value:
Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/

重启后端tomcat,再次访问,完美登录,nice!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言