在前面的Apache,在后面的Tomcat,但SSL不工作?

我将Apache设置为我的Web服务器,Tomcat通过mod_jk连接到Apache,因此用户不会与Tomcat交互。

我已经在Apache上设置了SSL,我可以用https://localhost命中,但是当我尝试在https://localhost/app上访问我的应用程序时,我得到一个directory not found错误。

赶上当我去经常http,我可以打的罚款: http://localhost/app

我需要编辑这个连接才能工作?

  • 我已经取消了server.xml的AJP连接器的注释
  • 我已经将我的虚拟主机添加到httpd.conf

我错过了什么?

http和https被Apache认为是不同的虚拟服务器。 您是否在两个虚拟主机下都设置了您的反向代理?

您需要复制从http到https的设置 – 如果您有http连接器,则不需要ajp连接器

看看它是如何设置的 – 可能它做了一个代理传递,或者在代理的末尾使用一个带有P的RewriteRule。

你对工人的定义可能是错误的。 检查workers.properties的工作types。 如果是ajp13,那么在tomcat中将你的ajp部分放回原来的位置。 mod_jk通常使用ajp13作为types。

它应该工作,如果configuration正确。 还有一件事要检查 – 您的代理传递规则可以在SSL连接中访问。 可以将网站的SSL版本configuration为与非SSL版本不同。 确保您的代理通行证configuration在两者中。

如果使用mod_jk,则需要Tomcat中的AJP连接器。

在大多数情况下,如果worker有configuration问题,Apache将会回答一个500错误(服务器错误)。 如果你得到了404,这是因为请求没有被传递给Tomcat服务器(或者从Tomcat的angular度来看URL是无效的)。 检查你的Apacheconfiguration中是否存在JkMount(对于443端口)。

要使用mod_jkdebugging问题,请打开mod_jk中的debugging日志,查看Apache日志。 在mod_jkconfiguration(通常是jk.conf)中添加这些行:

JkLogFile /var/log/apache2/mod_jk.log

JkLogLeveldebugging

您应该在启动时看到一些日志,并为每个请求提供一些有趣的细节。

我为Apache2 + SSL + JBoss做了这样的设置。 在生产环境中的Apache服务器后部署J2EE应用程序,您会发现其他细节和优化技巧

看这篇文章。 它解释了如何使用https做mod_jk。 它是通过一个安全的虚拟主机完成的,然后通过与非安全连接相同的标准AJP通道与Tomcat进行通信。

http://kahimyang.info/kauswagan/howto_blogs/1464-2_ways_to_setup_ssl_on_tomcat_7