嵌入式 tomcat 7 落后于 iis 7.5 代理 ssl 问题

嵌入式 tomcat 7 落后于 iis 7.5 代理 ssl 问题

我在 iis 7.5 代理服务器后面使用嵌入式 tomcat 7,并使用 arr 将请求转发到 tomcat。

除非 iis 设置为需要 ssl,否则一切都正常。

那么,在 tomcat 上的文件中动态生成的链接之类的东西.jsp就无法正常工作。例如如果一个链接应该指向https://somewhere.com:443它将被写为http://somewhere.com:8080(8080 是 tomcat 正在运行的端口)。

问题似乎来自于当 tomcat 查看自身以构建它正确看到的正在运行的 url 时http://somewhere.com:8080,但我需要它以其他方式思考。

有人知道如何在 iis 和 tomcat 之间不使用 ssl 来实现这一点吗?

答案1

此问题是由于 Tomcat 不知道URL应用程序的实际外部。当应用程序重定向到相对 URL 时,Servlet 会将完整的绝对 URL 添加到 Location(根据需要)。

HTTP如果您在和 Tomcat之间使用IIS,Tomcat 会认为您正在使用HTTP并生成http://...绝对的URL

解决方案不是在 和 Tomcat 之间使用HTTP(也不使用HTTPS) IIS
您应该使用AJP13协议 和Tomcat-ISAPI Redirector上的IIS
这是官方的 Tomcat+IIS 如何

使用 Apache 作为代理,您可以使用 HTTP 进行代理,但您需要配置 Apachemod_proxy并告诉 Tomcat 它位于代理后面。 以下是该过程的操作方法

相关内容