我在httpd.conf中有一个全局的proxypass规则
全球一级的规则
ProxyPass /test/css http://myserver:7788/test/css ProxyPassReverse /test/css http://myserver:7788/test/css
我有一个虚拟主机
Listen localhost:7788 NameVirtualHost localhost:7788 <VirtualHost localhost:7788> Alias /test/css/ "C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/" </VirtualHost>
我想禁用在这个虚拟主机上应用的所有全局代理通行证规则? NoProxy似乎不工作。
(我想这样做的原因是我有以下的全局规则,如果在这个虚拟主机中应用,创build一个502代理循环
#pass all requests to application server ProxyPass /test http://localhost:8080/test ProxyPassReverse /test http://localhost:8080/test
)
我想要做的是,使用apache服务所有静态内容(如css),同时仍然代理其余的请求到应用程序服务器。
在虚拟主机中,尝试这样的事情
<VirtualHost localhost:7788> ProxyPass /test/css ! Alias /test/css/ "C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/" </VirtualHost>
那! 说不能代理这条道路。 试一试 … ?
您也可以在您的虚拟主机configuration中尝试closuresProxyRequests 。
假设我明白你想要做什么,我会摆脱代理的东西,并使用位置或locationmatch块来捕捉对CSS的请求。 我会把这个在Apache的主站点configuration。
我猜你是代理或使用Jboss的AJP连接器。 把你的位置块之后。 你可以在这里把你的代理传递给jboss。 然后你可以将Apache的文档根目录设置到war目录的顶部。 你可能也想保留你的虚拟主机的别名。
经过一番思考,这可能会更简单
把这个放在任何虚拟主机之外的主http.conf中
Alias / test / css /“C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/”命令允许,拒绝全部允许
我假设你在同一台服务器上运行这个(Jboss,apache)。 注意你可以把目录块中的path改成test-web-app.war目录,如果你还有其他你希望Apache服务的东西,可以添加更多的别名。
您可能需要将您的Proxypass调整为Jboss,以便您有一个用于JBoss处理的目录。可能只是将它放在上面的目录块