在 Ubuntu 16 上使用 Apache 2.4 反向代理 Tomcat 7:找不到 webapp

Using Apache 2.4 on Ubuntu 16 to reverse proxy Tomcat 7: webapp not found

我正在按照 this page 上的说明使用 Apache,使用 SSL,在 Tomcat 7 实例前面,即 使用 SSL ,并且部署了一个 webapp。

我已按照所有说明进行操作并能够导航至:

http://localhost
https://localhost
http://localhost/my-webapp

唯一工作的是

https://localhost/my-webapp

它 returns 404 未找到错误。

我已经在下面发布了我的 conf 文件的相关部分。

阿帕奇 000-default.conf

<VirtualHost *:80>
  ...
  ProxyPass /my-webapp ajp://localhost:8009/my-webapp
  ProxyPassReverse /my-webapp ajp://localhost:8009/my-webapp
</VirtualHost>

Apache 默认-ssl.conf

<VirtualHost _default_:443>
  ...
  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
  SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
  SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
</VirtualHost>

Tomcat server.xml

  ...
  <Server port="8005" shutdown="SHUTDOWN">
    ...
    <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

我启用了所有模组,而且 ssl 和代理似乎都在工作。 当我导航到

  http://localhost/my-webapp

没有 https,代理工作正常。当我导航到

  https://localhost

它也有效;它 returns 静态 Apache 页面。 (它抱怨自签名证书不安全,但除此之外,它可以工作...)

不应该

  https://localhost/my-webapp

也工作?我错过了什么?

你需要在里面定义代理virtualhots_443

  ProxyPass /my-webapp ajp://localhost:8009/my-webapp
ProxyPassReverse /my-webapp ajp://localhost:8009/my-webapp