Lógica de proxy inverso de Apache basada en encabezado arbitrario

Lógica de proxy inverso de Apache basada en encabezado arbitrario

Tengo Apache ejecutándose en un fw natting, que autentica, invierte servidores proxy y proporciona un contenedor SSL para 2 aplicaciones web en el back-end. Esto funciona con alojamiento virtual y servidores proxy basados ​​en el directorio de nivel superior de la solicitud, por ejemplo https://example.com/app1/ <-> http://app1/app1/. (ver figura 1)

Me gustaría encontrar una manera de enviar una solicitud a un servicio web basándose en un encabezado arbitrario establecido en la solicitud, por ejemplo, si el encabezado web_service:coolwebservice está configurado, vuelve a enviarlo a webservice:8000. ¿Es esto siquiera posible?

fig1 [Apache:ejemplo.com:443 / FW / NAT]
                          |
       ┌------------------┬------------------┐
       | | |
       VVV
[aplicación1:80 /aplicación1/] [aplicación2:8080 /aplicación2/] [servicio_web:8000]     

Respuesta1

Sí, esto es absolutamente posible con mod_rewrite, algo como esto debería funcionar:

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

Con %{HTTP:...}él puedes inspeccionar encabezados arbitrarios y tomar decisiones basadas en ellos.

información relacionada