Proxy reverso do Apache de um host virtual para dois Tomcats

2

Alguém tem algumas dicas ou um exemplo de como configurar esse tipo de arranjo de proxy reverso no Apache Http Server 2.2? Eu suporto um aplicativo da web Java que desenvolvemos em vários ambientes. Por vários ambientes, quero dizer que temos várias instâncias de um servidor Tomcat em execução no mesmo host em portas diferentes: development = 9443, QA = 10443, production = 11443

Os aplicativos da Web Java são projetados para que você possa hospedar vários aplicativos em um servidor: cada aplicativo pode ser acessado em seu próprio contexto raiz. Se você não está familiarizado com a tecnologia, basicamente, isso significa que todas as páginas do meu aplicativo estão por trás do / myapp em https://myhost.mydomain.com/myapp .

Os aplicativos da Web Java também exigem o uso de cookies para manter o estado da sessão, portanto, qualquer solução de proxy reverso precisa se certificar de que o nome do host com proxy seja convertido de volta para o nome do host externo.

Atualmente, temos a instância do Tomcat de produção compartilhada na Internet por meio de um proxy reverso do Apache que faz o proxies https://public.mydomain.com/myapp to https://tomcatserver.mydomain.com:11443/myapp . Gostaríamos de abrir a instância do controle de qualidade do Tomcat para a Internet para que os testadores beta possam acessá-la, mas a URL https://publicserver.mydomain.com/myapp já está configurada para ir para a produção. Então, estamos tentando configurar um segundo proxy que mapeie https://publicserver.mydomain.com/beta para https://tomcatserver.mydomain.com:10443/myapp .

Aqui está o que eu tentei até agora, mas não está funcionando. Ambos os endereços (/ myapp e / beta) sempre acabam na instância do Tomcat de produção.

<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName public.mydomain.com
    ServerAlias public

    # Proxy to production environment on tomcatserver
    ProxyPass         /myapp/  https://tomcatserver.mydomain.com:11443/myapp/
    ProxyPassReverse  /myapp/  https://tomcatserver.mydomain.com:11443/myapp/
    <location /myapp/>
        SSLRequireSSL On
        SetOutputFilter              proxy-html
        ProxyPassReverseCookieDomain tomcatserver.mydomain.com    public.mydomain.com
        ProxyPassReverseCookiePath   /       /myapp/
        ProxyHTMLURLMap              /myapp  /myapp
    </location>

    # Proxy to QA environment on tomcatserver
    ProxyPass         /beta/  https://tomcatserver.mydomain.com:10443/myapp/
    ProxyPassReverse  /beta/  https://tomcatserver.mydomain.com:10443/myapp/
    <location /beta/>
        SSLRequireSSL On
        SetOutputFilter              proxy-html
        ProxyPassReverseCookieDomain tomcatserver.mydomain.com    public.mydomain.com
        ProxyPassReverseCookiePath   /      /myapp/
        ProxyHTMLURLMap              /beta  /myapp
    </location>
</VirtualHost>
    
por msinatl 02.05.2013 / 17:39

0 respostas