当前位置: 首页 > 知识库问答 >
问题:

在Apache SSL代理后面嵌入Tomcat的Spring Boot

葛鸿熙
2023-03-14

我正在寻找一个能够在Apache SSL代理后面运行Spring应用程序的解决方案。我尝试了很多配置都没有成功。所有的Spring响应都转到http,导致一个Not Found错误。

以下是apache配置:

         SetEnv proxy-initial-not-pooled 1
         ProxyPreserveHost On
         KeepAlive On
         SSLProxyVerify none
         SSLProxyCheckPeerCN off
         SSLProxyCheckPeerName off
         SSLProxyCheckPeerExpire off
         ServerName server.mydomain.dom
         ProxyTimeout 600
         ProxyPass  /excluded !
        RequestHeader set X-Forwarded-Proto https
        RequestHeader set X-Forwarded-Port 443

         ProxyPass / http://127.0.0.1:8081/
         ProxyPassReverse / http://127.0.0.1:8081/

以下是Spring选项:

server.port=8081
server.forward-headers-strategy=NATIVE
#server.tomcat.redirect-context-root=false
server.tomcat.remote_ip_header=x-forwarded-for
server.tomcat.protocol_header=x-forwarded-proto
server.tomcat.internal-proxies=.*

我正在使用Spring启动2.5.6在阿帕奇雄猫/ 9.0.54。操作系统 Apache 是一个 2.4.25 版本,运行在 Debian 9.13 上。

问题似乎发生在登录到应用程序和注销之后。如果我在登录操作后将http替换为https,我就能够导航到应用程序中。在我注销之前,所有链接都工作正常。当我注销时,应用程序再次转到http。

共有1个答案

梁丘诚
2023-03-14

我解决问题。第一步是添加

server.tomcat.use-relative-redirects=true

有了这个指令,代理就可以正常工作了。

最后,我将apache/应用程序配置为使用AJP。

 类似资料:
  • 我们有一个spring boot(spring MVC)应用程序,在Apache SSL代理背后的专用appserver上嵌入了Tomcat。 代理服务器上的SSL端口为4433,转发到AppServer上的端口8080。 因此转发到代理服务器的URL如下所示: 在没有代理的情况下运行时,发生的第一件事是 spring安全重定向请求,如: 若要显示登录表单,请使用扩展 它在没有代理的情况下工作很好

  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?

  • 问题内容: 我需要在Tomcat中启动Hazelcast,而无需单独的war文件。因此,将hazelcast.jar放入lib文件夹中的hazelczast.xml某处…接下来呢?还是不可能? 问题答案: 第一步是好的,只需将Hazelcast lib和配置放在Tomcat的libs文件夹中。接下来,如果您不需要单独的WAR文件,则是构建一个小的Valve类来启动/关闭Hazelcast节点。问题

  • 我试图在独立servlet容器(关键tc服务器)上部署spring-boot应用程序,但遇到了spring-boot管理页面的问题。当我使用命令运行应用程序时,我有正确的boot spring-boot admin UI页面,但是当我在tcServer上部署war时,在根路径上,我看到spring-boot admin页面中没有任何应用程序:我如何启用admin页面: jvm 1[2017.08.

  • 正在EC2实例上运行Spring Boot应用程序端口8080。 我们遇到了重定向循环,这是有道理的。 对于Spring Boot应用程序,看起来所有请求都是向非安全端口8080发出的,它重定向到https://example.com,通过ELB并再次在8080上获得请求 对如何用AWS ELB运行这个有什么想法吗???

  • 我们遇到了一个问题,嵌入式Tomcat从抛出。它抛出一个500 HTTP响应代码。 我们需要处理异常并对其进行处理(具体地说,将其作为400发送)。 典型的似乎没有被触发,Google似乎只给出处理Spring Boot特定异常的结果。 下面是一个重现这种行为的例子。您可以通过下载包含SpringWeb的初始项目来执行该示例(https://start.spring.io/)在版本2.1.5中。释