Como configurar mod_proxy para ProxyPass baseado em http vs https?

8

Eu tenho o Apache Tomcat em execução com o SSL ativado. Eu tenho o Apache HTTP Server atuando como um proxy reverso, então meus usuários se ligam ao link que são passados para link .

ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/

Também tenho o servidor HTTP Apache configurado para SSL, portanto, quando os usuários acessarem o link , eles devem ser passados para link .

Com o atual ProxyPass & Configuração ProxyPassReverse, eles serão redirecionados para o URL não-ssl. Como posso configurar a passagem de proxy para que ela redirecione para diferentes protocolos e portas com base na solicitação de entrada?

Ou seja, se alguém entrar via HTTPS, como posso redirecioná-los para o meu tomcat @ link ?

Atualização:

@ mike-insch

Eu tentei:

NameVirtualHost *:443

<VirtualHost *:80>
    ProxyPass /tomcat/ http://myserver:8080/
    ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>

<VirtualHost *:443>
    ProxyPass /tomcat/ https://myserver:8443/
    ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>

Agora, quando eu visito: link , recebo "página não encontrada". No log de erro, vejo "Arquivo não existe: / var / apache2 / htdocs / tomcat"

O que está correto, mas eu esperava que o pedido fosse roteado para o tomcat rodando no link .

Acho que preciso olhar mais para os hosts virtuais, a menos que algo pareça errado.

    
por codecraig 19.07.2011 / 17:36

2 respostas

4

Você precisa fazer isso por meio de duas diretivas <VirtualHost *:X> independentes. Suas diretivas HTTP estão dentro de <VirtualHost *:80> , enquanto as diretivas HTTPS estão dentro de <VirtualHost *:443> . Ajuste conforme necessário se o servidor tiver vários hosts virtuais com base em endereço ou baseados em nome configurados. Veja a documentação do Apache 2 para maiores detalhes.

    
por 19.07.2011 / 17:42
5

Para completar: se for uma opção, é uma boa idéia finalizar o SSL no Apache, em vez de ter o Tomcat também. Fornecer o Tomcat só é acessível a partir do Apache, isso é mais simples e não menos seguro.

Nesta configuração, o Apache procuraria HTTP e HTTPS para http://myserver:8080/ :

NameVirtualHost *:443

<VirtualHost *:80>
    ProxyPass /tomcat/ http://myserver:8080/
    ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>

<VirtualHost *:443>
    ProxyPass /tomcat/ http://myserver:8080/
    ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
    
por 04.12.2012 / 12:42