Proxy reverso do Apache para dois aplicativos da Web: um no host local outro na máquina remota

1

Eu tenho dois aplicativos da web: Jira e Mercurial. Eles costumavam estar no mesmo servidor Dual Host , mas desde então eu mudei o Mercurial para Mercurial Host . O Jira ainda está hospedado em Dual Host .

Dual Host tem um servidor Apache 2.2.22 que costumava hospedar o Mercurial, mas agora servirá como proxy reverso.

No meu servidor de domínio, configurei jira para apontar para o IP de Dual Host e mercurial para apontar para o IP de Mercurial Host .

As pessoas costumavam acessar o Jira acessando http://dualhost:4040/ e o Mercurial acessando http://dualhost/ .

Configurei um proxy reverso para solicitações de proxy de http://dualhost/ to http://mercurial/ (para que os links existentes sejam enviados em vários lugares). Isso está funcionando bem com a configuração abaixo:

<VirtualHost *:80>
    ServerName dualhost
    ProxyPreserveHost On

    ProxyPass / http://mercurial:80/
    ProxyPassReverse / http://mercurial:80/
</VirtualHost>

Agora eu queria fazer solicitações de proxy de http://jira para http://dualhost:4040 , mas continuo usando o proxy no Mercurial.

A razão para isso é que eu quero mover o Jira para um novo servidor em uma data posterior e quanto mais cedo a URL estiver 'correta', melhor.

Eu configurei essa regra para:

<VirtualHost jira:80>
    ServerName jira
    ProxyPreserveHost On

    ProxyPass / http://localhost:4040/
    ProxyPassReverse / http://localhost:4040/
</VirtualHost>

Estou analisando a documentação do Apache 2.2 e parece que isso deve funcionar. O que estou fazendo errado?

    
por dosaki 27.02.2017 / 12:41

1 resposta

2

Tente usar <VirtualHost *:80> na sua configuração jira virtualhost.

A correspondência de Virtualhost é sensível à ordem, portanto, se um <VirtualHost *:80> vier antes de um <VirtualHost jira:80> , o segundo nunca será igual. Isso também é verdadeiro se você estiver usando vários arquivos conf.d/*.conf distintos, pois o apache carrega esses arquivos em ordem alfabética.

Do seu exemplo, pode-se supor que você usaria arquivos com o nome conf.d/dualhost.conf e conf.d/jira.conf . Como dualhost vem em ordem alfabética antes de jira , o segundo nunca corresponderia.

    
por 27.02.2017 / 13:03