大佬教程收集整理的这篇文章主要介绍了在Apache代理后面具有嵌入式Tomcat的Spring Boot,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
前几天我遇到了同样的问题。在对Spring Boot 1.3进行一些调试之后,我发现了以下解决方案。
您必须在Apache代理上设置标头:
<VirtualHost *:443>
Servername www.myapp.org
ProxyPass / http://127.0.0.1:8080/
requestheader set X-ForWARDed-Proto https
requestheader set X-ForWARDed-Port 443
ProxyPreserveHost On
... (SSL directives omitted for readability)
</VirtualHost>
您必须告诉Spring Boot应用程序使用这些标头。因此,将以下行放在application.propertIEs中(或Spring Boots可以理解属性的任何其他位置):
server.use-forWARD-headers=true
如果正确执行这两件事,则应用程序发送的每个重定向都 转到http://127.0.0.1:8080/[path],而是会自动转到https://www.myapp.com/[path]
更新1. 有关此主题的文档在此处。您应该至少阅读它,以了解该属性server.tomcat.internal-
proxIEs
定义了可信任的代理服务器的IP地址范围。
我们在Apache SSL代理后面的专用应用程序服务器上有一个带有嵌入式tomcat的Spring Boot(Spring MVC)应用程序。
代理服务器上的SSL端口为4433,转发到应用服务器上的端口8080。
因此,代理服务器的URL正在转发,如下所示:
https://proxyserver:4433/appname >>forWARD>> http://appserver:8080/
当运行WITHOUT代理时,发生的第一件事是@H_801_39@ Spring Security重定向请求,例如:
http://appserver:8080/ >>redirect>> http://appserver:8080/login
以显示登录表单,通过扩展WebSecurityConfigurerAdapter
与
...
httpSecurity.formLogin().loginPage("/login") ...
...
在没有代理的情况下,它可以正常工作,但是在使用代理的情况下,需要更改重定向,@H_801_39@ 因此Spring应该改为重定向到相应的代理URL,例如:
http://appserver:8080/ >>redirect>> https://proxyserver:4433/appname/login
但还没有成功。
我正在尝试应用此解决方案: 59.8在前端代理服务器后面使用tomcat
我们已经在Apache中配置了 @H_40_19@mod_proxy@H_801_39@ ,并验证它是否发送了预期的标头:
X-ForWARDed-For: xxx.xxx.xxx.xxx
X-ForWARDed-Host: proxyserver
X-ForWARDed-Port: 4433
X-ForWARDed-Proto: https
该应用程序以以下参数启动:
export ARG1='-Dserver.tomcat.protocol-header=x-forWARDed-proto'
export arg2='-Dserver.tomcat.remote-ip-header=x-forWARDed-for'
java $ARG1 $arg2 -jar webapp.jar
重定向仍然不起作用。
它将保持本地重定向,http://appserver:8080/login
客户端无法访问该重定向 。
为了使此方案正常工作,我们还有什么需要做的吗?
另外,我担心代理URL中的“ / appname”部分。在appserver上,应用程序植根于“@H_801_39@ /”。通过代理时,应如何指示Spring在发送回客户端的所有URL中都包含“ / appname”?
以上是大佬教程为你收集整理的在Apache代理后面具有嵌入式Tomcat的Spring Boot全部内容,希望文章能够帮你解决在Apache代理后面具有嵌入式Tomcat的Spring Boot所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。