标题有点令人困惑,所以这里介绍一些背景知识:我有一个运行在 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/