Estoy usando Apache 2.4.7 en un servidor Windows 2016 como equilibrador de carga entre un par de aplicaciones Spring Boot REST usando <VirtualHost *:8000>
la sección. Esto está funcionando bien.
Sin embargo, también tengo una aplicación Angular de una sola página y quiero alojar sus archivos (HTML, CSS, JS, etc.) en el mismo servidor Apache. Necesito usar el mismo número de puerto 8000
, ya que la aplicación Angular está realizando las llamadas REST; de lo contrario, obtendré un error CORS.
Mi pregunta es: ¿Cómo es posible configurar Apache para que sea a la vez un servidor web estático y un equilibrador de carga en el mismo puerto?
Respuesta1
No estoy seguro de su configuración y detalles específicos, pero en general lo que busca hacer es configurar yProxy inverso Apache. No es necesario configurar un nuevo puerto ni nada por el estilo. Como explican los documentos oficiales de Apache:
Además de ser un servidor web "básico" y proporcionar contenido estático y dinámico a los usuarios finales, Apache httpd (así como la mayoría de los demás servidores web) también puede actuar como un servidor proxy inverso, también conocido como "puerta de enlace". "servidor.
En tales escenarios, httpd por sí solo no genera ni aloja los datos, sino que el contenido es obtenido por uno o varios servidores backend, que normalmente no tienen conexión directa a la red externa. Cuando httpd recibe una solicitud de un cliente, la solicitud en sí esapoderadoa uno de estos servidores backend, que luego maneja la solicitud, genera el contenido y luego lo envía de regreso a httpd, que luego genera la respuesta HTTP real al cliente.
Entonces, en su caso, lo que necesita saber sobre Apache es que puede configurar rutas y directorios para que se comporten de maneras específicas en Apache. Por lo tanto, se puede actuar sobre una URL para configuraciones y comportamientos específicos o incluso ignorarla.
Para obtener más detalles sobre cómo se puede configurar un proxy inverso Apache,mira esta respuesta que publiqué en Server Fault.