Local padrão / status do servidor não herdando no Apache

1

Estou tendo um problema para obter / server-status para trabalhar com o Apache 2.2.14 no Ubuntu Server 10.04.1.

Os links simbólicos padrão para status.load e status.conf estão presentes em / etc / apache2 / mods-enabled. O status.conf inclui o local / status do servidor e as diretivas apropriadas de permissão / negação.

No entanto, o único vhost que tenho em sites habilitados se parece com isso. A idéia é fazer o proxy de qualquer coisa com um URL do Tomcat para um cluster de tomcats e qualquer outra coisa para uma caixa do IIS. No entanto, isso parece resultar em solicitações para / server-status sendo enviadas para o IIS. Copiar o / server-status explicitamente para a configuração Vhost não parece ajudar, não importa a ordem que eu uso. É possível incluir / server-status fazer isso dentro de uma configuração de vhost que tenha uma regra de proxy "padrão"?:

<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>

    
por rmalayter 14.02.2011 / 18:29

2 respostas

2

Você precisa adicionar uma exclusão para o proxy. As diretivas ProxyPass e ProxyPassMatch devem ser semelhantes:

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

! no lugar do URL de destino significa "excluir o caminho especificado do proxy". As diretivas devem ser ordenadas com a URL mais específica primeiro, porque a primeira diretiva correspondente é usada.

E colocar ProxyPass e ProxyPassMatch dentro de <Proxy> e <ProxyMatch> containers não está documentado - não tenho certeza se realmente deve funcionar corretamente; apenas coloque-os dentro de <VirtualHost> .

    
por 14.02.2011 / 21:19
1

Substituir:

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

Com:

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