Como o @ josh-jolly sugere… colocar as várias declarações de proxy em um único VHost é útil, já que sua configuração tem vários VHosts, todos escutando absolutamente qualquer coisa na porta 80.
ORDEM BÁSICA DE COMPLEXIDADE
No entanto, a recomendação de Josh não se comunica (e ilustra incorretamente em seu exemplo) é que o mod_proxy, como mod_rewrite, processa os padrões fornecidos na ordem em que são recebidos.
O que isto significa é que se você colocar as seguintes linhas antes do outro ProxyPass / ProxyPassReverse bloquear que todo o tráfego será pego por este padrão.
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
Provavelmente é por isso que todo o tráfego estava sendo enviado para a Glassfish, em vez do tráfego desejado para o PHPMyAdmin.
ORDEM DE COMPLEXIDADE NESTADA
Da mesma forma, você deve ter cuidado com as regras de ordem de complexidade dos padrões de URL que deseja rotear de forma diferente, mas que estão aninhados.
O exemplo a seguir mostra uma ordem mal elaborada do conjunto de regras de complexidade.
ProxyPass /myapp http://localhost:9090/
ProxyPassReverse /myapp http://localhost:9090/
ProxyPass /myapp/images http://localhost:8080/
ProxyPassReverse /myapp/images http://localhost:8080/
Neste exemplo, todo o tráfego fluiria para a porta 9090 porque ambos os URLs contatam /myapp
, mas mod_proxy correspondia ao padrão mais básico antes de poder chegar ao padrão /myapp/images
.
Ordenar os blocos da seguinte maneira permitirá que os dois padrões sejam correspondidos adequadamente devido ao nível decrescente de complexidade nos padrões de URL.
ProxyPass /myapp/images http://localhost:8080/
ProxyPassReverse /myapp/images http://localhost:8080/
ProxyPass /myapp http://localhost:9090/
ProxyPassReverse /myapp http://localhost:9090/
BONS HÁBITOS
- Inclua comentários nas suas configurações do VHost. Você não será sempre a pessoa que está atualizando ou gerenciando-os.
- ProxyPass e ProxyPassReverse devem sempre corresponder. Eu nunca encontrei um uso válido onde as duas diretivas devam diferir. Isso é especialmente verdadeiro ao incluir ou não incluir uma barra no padrão de URL.
- Agrupe as diretivas relacionadas e separe-as visualmente com algum tipo de bloco de comentários. Isso é especialmente útil para configurações VHost grandes ou complexas. Mas quando as práticas como um hábito facilitarão muito a sua vida.