缺省/服务器状态位置不在Apache中inheritance

我有一个问题获取/服务器状态在Ubuntu服务器10.04.1工作Apache 2.2.14。

status.load和status.conf的缺省符号链接出现在/ etc / apache2 / mods-enabled中。 status.conf包含位置/服务器状态和适当的允许/拒绝指令。

但是,我在启用网站的唯一虚拟主机看起来像这样。 这个想法是用Tomcat URL代理任何东西到一个tomcats集群,其他任何东西都可以代替一个IIS框。 但是,这似乎导致请求/服务器状态被发送到IIS。 无论我使用什么命令,将/ server-status复制到Vhostconfiguration似乎都没有帮助。 是否有可能包括/服务器状态做一个虚拟主机configuration有一个“默认”代理规则?

<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://tomcatCluster> BalancerMember ajp://qa-app1:8009 route=1 BalancerMember ajp://qa-app2:8009 route=2 ProxySet stickysession=ROUTEID </Proxy> <ProxyMatch "^/(mytomcatappA|mytomcatappB)/(.*)" > ProxyPassMatch balancer://tomcatCluster/$1/$2 </ProxyMatch> #proxy anything that's not a tomcat URL to IIS on port 80 <Proxy /> ProxyPass http://qa-web1/ </Proxy> 

您需要为代理添加排除项 – 您的ProxyPassProxyPassMatch指令应该如下所示:

 ProxyPassMatch ^/(mytomcatappA|mytomcatappB)/(.*) balancer://tomcatCluster/$1/$2 ProxyPass /server-status ! ProxyPass / http://qa-web1/ 

! 代替目标url意味着“排除指定的代理path”。 应该首先使用最具体的URL来sorting指令,因为使用了第一个匹配的指令。

并且将ProxyPassProxyPassMatch放在<Proxy><ProxyMatch>容器内没有logging – 不确定它是否应该真的正常工作; 只要把它们放在<VirtualHost>里面。

更换:

 <Proxy /> ProxyPass http://qa-web1/ </Proxy> 

附:

 <ProxyMatch ! "^/server-status"> ProxyPass http://qa-web1/ </Proxy>