设置 Apache + Tomcat + SSL,但不知道如何对非 Tomcat 请求使用 SSL

设置 Apache + Tomcat + SSL,但不知道如何对非 Tomcat 请求使用 SSL

标题有点令人困惑,所以这里介绍一些背景知识:我有一个运行在 8080 上的 Tomcat 服务器,需要对其进行保护。我配置了 Apache 以终止 SSL 并代理到 Tomcat,如下所示(我思考我做对了):

ProxyRequests       off
ProxyPreserveHost   on
ProxyPass           /jira   http://localhost:8080/jira
ProxyPassReverse    /jira   http://localhost:8080/jira

<VirtualHost _default_:443>
    SSLEngine on

    ProxyPass           /   http://localhost:8080/
    ProxyPassReverse    /   http://localhost:8080/
</VirtualHost>

这按预期工作,但现在我想保护我的 Web 服务器中的其他目录,例如 Mercurial 存储库。当我创建上述目录并需要 SSL 时,请求会被转发到 Tomcat(就像我告诉它的那样……但在这种情况下这不是我想要的)。

所以我的问题是:我如何更改我的配置以便只能将某些请求转发到 Tomcat 服务器?

根据 Shane 的回应更新解决方案:

<VirtualHost _default_:443>
    SSLEngine on

    ProxyPass / !
    ProxyPass           /jira   http://localhost:8080/jira
    ProxyPassReverse    /jira   http://localhost:8080/jira
</VirtualHost>

这样做是有意义的,因为从那时起我只代理我需要的应用程序。

答案1

ProxyPass在现有配置之前使用豁免以避免代理某些位置:

ProxyPass /location/to/not/proxy !
ProxyPass /other/location/to/not/proxy !
...
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

相关内容