Lógica de proxy reverso do Apache baseada em cabeçalho arbitrário

Lógica de proxy reverso do Apache baseada em cabeçalho arbitrário

Eu tenho o Apache rodando em um natting fw, que autentica, reverte proxies e fornece um wrapper SSL para 2 webapps no back-end. Isso funciona com hospedagem virtual e proxies baseados no diretório de nível superior da solicitação, por exemplo https://example.com/app1/ <-> http://app1/app1/, . (ver fig1)

Gostaria de encontrar uma maneira de fazer proxy de uma solicitação para um serviço da web com base em um cabeçalho arbitrário definido na solicitação, por exemplo, se o cabeçalho web_service:coolwebservice estiver definido, ele fará o proxy de volta para webservice:8000. Isso é possível?

fig1 [Apache:exemplo.com:443/FW/NAT]
                          |
       ┌------------------┬------------------┐
       | | |
       VVV
[app1:80 /app1/] [app2:8080 /app2/] [web_service:8000]     

Responder1

Sim, isso é absolutamente possível com mod_rewrite, algo como isto deve resolver:

RewriteCond %{HTTP:web-service} coolwebservice
RewriteRule ^/(.*) http://web_service:8000/$1 [P,L]

Com %{HTTP:...}você pode inspecionar cabeçalhos temporários e tomar suas decisões com base nisso.

informação relacionada