Cómo configurar Apache como proxy inverso

Cómo configurar Apache como proxy inverso

Un servidor proxy inverso es un servidor web que acepta las solicitudes del cliente y las enruta al servidor de back -end apropiado. En ese caso, el proxy inverso es el servidor orientado a Internet, y las aplicaciones de back-end se ejecutan en Localhost o la red LAN.

Apache es el servidor web más popular que también se puede configurar como un servidor proxy inverso. En este tutorial, aprenderá sobre la configuración del servidor proxy inverso de Apache en un sistema Linux.

Escenario de nuevo trabajo

Tenemos dos aplicaciones que se ejecutan con el servidor Tomcat en el puerto localhost 8080. No importa si las aplicaciones se están ejecutando con Tomcat o cualquier otro servicio como NodeJS, etc. Las URL de ambas aplicaciones locales son:

  • http: // localhost: 8080/demo1
  • http: // localhost: 8080/demo2

Ahora he instalado el servidor Apache en el mismo host que se ejecuta en el puerto 80. El servidor Apache acepta las solicitudes de los usuarios de Internet y las reenvía a las aplicaciones correspondientes que se ejecutan en el extremo posterior. Necesitamos configurar el proxy para reenviar las solicitudes de la siguiente manera:

  • http: // ejemplo.com >> http: // localhost: 8080/demo1/
  • http: // ejemplo.net >> http: // localhost: 8080/demo2/
  • http: // dominio.com/demo1/>> http: // localhost: 8080/demo1/
  • http: // dominio.com/demo2/>> http: // localhost: 8080/demo2/

Para obtener una mejor comprensión, consulte el siguiente diagrama:

Entonces, comencemos la configuración:

Paso 1: Configuración del módulo proxy Apache

Por defecto, este módulo está habilitado en Apache para los usuarios que se instalan utilizando paquetes RPM. Los usuarios con sede en Debian deben habilitar módulos manualmente.

  • Sistemas basados ​​en Redhat: editar el archivo de configuración proxy /etc/httpd/conf.módulos.d/00-proxy.confusión Descopment las siguientes entradas. Si no está disponible, entonces agrégalos.
    Loadmodule proxy_module módulos/mod_proxy.Entonces loadmodule proxy_http_module módulos/mod_proxy_http.entonces 
  • Sistemas basados ​​en Debian: use el siguiente comando para habilitar el módulo proxy con Apache.
    sudo a2enmod proxy proxy_http  

Después de habilitar los módulos, deberá reiniciar los servicios de Apache para aplicar los cambios inmediatamente.

Paso 2: Configurar Apache Virtual Host

Ahora comenzará a trabajar con el host virtual. Estamos creando tres hosts virtuales como se muestra a continuación. Crea solo lo que se requiere con las modificaciones necesarias. Editar el archivo de configuración principal de Apache y comenzar con la configuración.

  • Primer ejemplo de host virtual:
  • Para reenviar todas las solicitudes enviadas al ejemplo.com para retroceder el servidor Tomcat de la aplicación correspondiente como:

    • http: // ejemplo.com >> http: // localhost: 8080/demo1/

    Configure el primer host virtual como a continuación:

    Ejemplo de nombre de servidor.com proxyRequests en proxyPass/http: // localhost: 8080/demo1/proxyPassReverse/http: // localhost: 8080/demo1/
    12345678 Ejemplo de nombre de servidor.com proxyRequests en proxyPass/http: // localhost: 8080/demo1/proxyPassReverse/http: // localhost: 8080/demo1/

  • Segundo ejemplo de host virtual:
  • Para reenviar todas las solicitudes enviadas al ejemplo.neto para back -end Tomcat Server correspondiente como:

    • http: // ejemplo.net >> http: // localhost: 8080/demo2/

    Configurar un host virtual como este.

    Ejemplo de nombre de servidor.net proxyRequests en proxyPass/http: // localhost: 8080/delo2/proxyPassReverse/http: // localhost: 8080/damo2/
    12345678 Ejemplo de nombre de servidor.net proxyRequests en proxyPass/http: // localhost: 8080/delo2/proxyPassReverse/http: // localhost: 8080/damo2/

  • Tercer ejemplo de host virtual:
  • Para reenviar todas las solicitudes enviadas al subdirectorio/demo1/o/demo2 en http: // dominio.com a las aplicaciones correspondientes de Tomcat de retroceso como:

    • http: // dominio.com/demo1/>> http: // localhost: 8080/demo1/
    • http: // dominio.com/demo2/>> http: // localhost: 8080/demo2/

    Configurar un host virtual como este.

    Dominio de nombre de servidor.com proxyRequests en proxyPass/demos1 http: // localhost: 8080/delo1/proxyPassververse/demo1 http: // localhost: 8080/delo1/proxyPass/delo2 http: // localhost: 8080/damo2/proxyPassreverse/delo2 http: //////local : 8080/ demo2/ requirido otorgado todo lo requerido otorgado todo
    1234567891011121314151617 Dominio de nombre de servidor.com proxyRequests en proxyPass/demos1 http: // localhost: 8080/delo1/proxyPassververse/demo1 http: // localhost: 8080/delo1/proxyPass/delo2 http: // localhost: 8080/damo2/proxyPassreverse/delo2 http: //////local : 8080/demo2/ Requerido otorgado todo Requerido otorgado todo

Paso 3: Reinicie Apache para aplicar los cambios

Una vez que haya creado con éxito Apache Virtual Host, debe reiniciar el servicio Apache. Use los siguientes comandos para reiniciar el servicio Apache en función del sistema operativo.

  • Sistemas basados ​​en Redhat:
    sudo systemctl reiniciar httpd  
  • Sistemas basados ​​en debedes:
    sudo systemctl reiniciar apache2  

Conclusión

Esta publicación de blog le ayuda a configurar Apache como un servidor proxy inverso en sistemas basados ​​en Debian o basados ​​en Redhat. El proxy inverso hace un puente entre el servidor web de Internet y la aplicación web que se ejecuta como un servicio de backend.