Apache2 / glassfish | tomcat: Redirecionando alguns (mas não todos) pedidos em 80 para glassfish na porta 8080, onde está a tela de administração?

1

Usando essa resposta: Como redirecionar o tráfego na porta 80 para a porta Tomcat 8080 enquanto ainda permite que o servidor envie / receba na porta 80

Configurei meu servidor apache2 para redirecionar algumas solicitações para o glassfish no 8080:

<VirtualHost *:80>
(...)
ProxyPass /tomcat/ http://localhost:8080/
ProxyPassReverse /tomcat/ http://localhost:8080/
ProxyPass /tomcat-admin/ http://localhost:4848/
ProxyPassReverse /tomcat-admin/ http://localhost:4848/
</VirtualHost>

No link , posso ver claramente:

 GlassFish Server 3.1.2
Your server is now running

mas o link retorna uma tela em branco , mas posso ver a origem de HTML a página de administração, então suponho que alguns recursos não possam ser carregados. Como devo corrigir isso?

Outra pergunta: se o meu aplicativo da web java usa link , devo adicionar:

ProxyPass /tomcat-secure/ http://localhost:8443/
ProxyPassReverse /tomcat-secure/ http://localhost:8443/
</VirtualHost>

?

    
por Pierre 09.01.2013 / 11:19

1 resposta

0

Infelizmente, não sei nada sobre esse material do proxy do apache. No entanto, tive um problema semelhante e minha solução alternativa pode ajudar você a resolver seu problema.

Eu integrei o tomcat ao apache usando mod-jk . Supondo que você esteja usando uma distro baseada no Debian, instale libapache2-mod-jk e configure o módulo em /etc/libapache2-mod-jk/workers.properties . Você pode precisar de algo assim:

worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13

Esses parâmetros definem a conexão entre o apache e o tomcat. Eu disse ao tomcat para apenas ouvir 127.0.0.1 . Mas deve ser bom configurar o módulo para falar com outro IP e / ou uma porta diferente se você precisar de uma instalação independente do tomcat disponível sem o apache.

Próximo passo: abra /etc/apache2/mods-available/jk.conf e verifique se o apache lê essas propriedades:

JkWorkersFile /etc/libapache2-mod-jk/workers.properties

Se isso for feito, a comunicação entre o apache e o tomcat deve funcionar. Agora você pode criar alguns hosts encaminhando seus pedidos para o tomcat:

<VirtualHost *:80>
    [...]
    ServerName your.host.tld
    [...]
    RewriteEngine on
    RewriteRule ^/(.*)$ /YourContext/$1 [L,PT]
    JkMount /* ajp13_worker
    [...]
</VirtualHost>

Este host virtual encaminhará cada solicitação para o contexto YourContext no tomcat. ajp13_worker é a definição do trabalhador como configurada anteriormente em /etc/libapache2-mod-jk/workers.properties (claro que você pode configurar vários trabalhadores para diferentes IPs / portas) e o RewriteRule reescreve a consulta para prefixá-la com YourContext . Então você também precisa do módulo de reescrita, se ainda não estiver ativado. Ative os módulos e este host:

a2enmod jk
a2enmod rewrite
a2ensite 007-what-ever-host
service apache2 restart
service tomcat7 restart

e vá para http://your.host.tld/abc?some=query . Espero que você acabe com o mesmo resultado como se chamasse http://your.host.tld:8080/YourContext/abc?some=query .

Espero que ajude; -)

    
por 09.01.2013 / 19:12