Eu tenho tentado configurar um proxy reverso usando o apache 2 mod_proxy e o proxypass & diretivas proxypassreverse.
Estou instalando o WSO2 Identity Server e desejo acessar esse aplicativo usando um URL como o seguinte.
hxxp://myserver.domain.com/wso2/
O myserver.domain.com
está acessível na internet
Internamente na minha rede, configurei um virtualhost em execução na configuração do meu apache2 com os seguintes parâmetros:
Por vários motivos, a porta 80 não está disponível e o virtualhost deve permanecer como: 8080.
Finalmente, aqui está minha configuração de host virtual
<VirtualHost *:8080>
<Location /wso2/>
ProxyPass hxxps://internal.wso2.node:9443/
ProxyPassReverse hxxs://internal.wso2.node:9443/
</Location>
ProxyVia On
ProxyPreserveHost Off
ProxyAddHeaders Off
ProxyRequests Off
SSLProxyEngine On
SSLProxyCheckPeerCN Off
</VirtualHost>
A questão:
Eu posso usar meu navegador da web (Firefox / Chrome) para solicitar o recurso link . Nos meus arquivos de log, vejo que a solicitação não atinge o servidor apache e o virtualhost captura o / wso2 / location.
Ele passa pelo proxy e é aterrado no servidor internal.wso2.node. no entanto, o produto WSO2 IS pré-forma vários redirecionamentos que, nos arquivos de log eu vejo solicitando o recurso com a porta anexada.
Aqui está o fluxo de solicitações
hxxp://myserver.domain.com/wso2/ -> hxxps://internal.wso2.node:9443/
REDIRECT x3
hxxps://internal.wso2.node:8080/carbon ->
hxxps://internal.wso2.node:8080/carbon/admin/login.jsp
Back to my web browser
hxxp://myserver.domain.com:8080/wso2/carbon/admin/login.jsp
Por algum motivo, a resposta do apache anexa seu host virtual à URL que estou solicitando.
Se eu remover a porta: 8080 manualmente e solicitar novamente a URL completa no navegador, ela acessará a multa do recurso. No entanto, qualquer tentativa de acesso usando apenas o link resultará em redirecionamentos e na porta anexada.