← Back to blog

Una guía sobre la extensión mod_proxy: Cómo usar Apache como proxy inverso

Category
Una guía sobre la extensión mod_proxy: Cómo usar Apache como proxy inverso

Introducción

Las extensiones de terceros son adiciones extremadamente útiles. Estas hacen que su experiencia al configurar y trabajar con un servidor, como Apache HTTP, sea mucho más sencilla y facilitadora. En caso de necesidad, incluso puede usar algunos de estos módulos en Apache para ejecutar un proxy inverso. Puede eliminar una capa de la configuración de su servidor o puede usar un módulo para redirigir las conexiones.

En esta guía, analizaremos Apache y los diversos módulos asociados con la plataforma del servidor, como mod_proxy. También veremos cómo puede usarlo como un proxy inverso para redirigir las conexiones a sus servidores de aplicaciones backend.

¿Qué es Apache?

Apache es un servidor HTTP que se utiliza muy comúnmente para fines relacionados con la web. Pero puede usarlo por una variedad de razones y en varias plataformas. Puede instalar su servidor web Apache en Ubuntu siguiendo nuestro tutorial paso a paso. Además, siga este tutorial para aprender cómo proteger su servidor Apache con Let’s Encrypt. También puede consultar cómo configurar hosts virtuales de Apache en Ubuntu 20.04.

Puede explorar más a fondo las funciones e implementación de Apache con la ayuda de módulos externos. Estos son módulos de terceros que puede utilizar para realizar diversas tareas relacionadas con las conexiones y configuraciones. For ejemplo, puede utilizar el módulo mod_rewrite para realizar una reescritura de URL basada en reglas. Otro de estos módulos es mod_proxy. Este último módulo está muy poco utilizado en la comunidad. Principalmente porque muchas personas no conocen el alcance de su funcionalidad y aplicaciones. Mod_proxy, como sugiere el nombre, puede ayudarle a configurar una puerta de enlace o proxy para servidores backend.

Exploremos el mod_proxy en detalle y cómo puede usarlo como un proxy inverso.

Mod_proxy: Uso de Apache como proxy inverso

Como probablemente sepa, mod_proxy es un módulo. Es un módulo en Apache que puede utilizar para formar y redirigir varias conexiones. También puede activarlo y configurarlo como cualquier otro módulo en su sistema. Lo único de mod_proxy es que no es solo un módulo. De hecho, comprende una colección de diferentes módulos que encontrará a continuación. Cada uno de estos tiene su propia función que realizar. De esta manera, mod_proxy le brinda una gran diversidad de funciones.

Eche un vistazo a los siguientes módulos de mod_proxy:

mod_proxy

Este es el módulo proxy principal. En Apache, puede usar este módulo para configurar y administrar varias conexiones. También puede ayudarle a redirigir conexiones.

mod_proxy_http

Como sugiere el nombre, este módulo se encarga de los protocolos HTTP y HTTPS. Puede utilizar este módulo para implementar las funciones de proxy de estos protocolos.

mod_proxy_ftp

Mod_proxy_ftp funciona para cuando se trata del protocolo FTP.

mod_proxy_connect

Este módulo es útil para cuando realiza túneles SSL.

mod_proxy_ajp

Puede utilizar mod_proxy_ajp cuando trabaje con el protocolo AJP.

mod_proxy_wstunnel

Esto es útil para cuando trabaja con web sockets como WS y WSS.

mod_proxy_balancer

Si busca acceder a funciones de equilibrio de carga y clustering, puede utilizar este módulo.

mod_cache

El módulo mod_cache es útil, como es de esperar, para fines de almacenamiento en caché.

mod_headers

Puede utilizar este módulo para administrar las cabeceras que crea utilizando el protocolo HTTP.

mod_deflate

Este módulo se utiliza para fines de compresión.

Si desea conocer aún más detalles sobre estos módulos, puede visitar el sitio web oficial de Apache. La documentación oficial también le brinda más información sobre mod_proxy y el propio Apache.

¿Cómo instalar Apache y mod_proxy?

Aquí tiene algunos pasos sencillos de seguir para instalar Apache y mod_proxy en su sistema:

  1. Preparar el servidor

Antes que nada, debe asegurarse de que su servidor en la nube esté preparado. Para hacer esto, debe actualizar su sistema operativo y el software asociado a las últimas versiones.

Use los siguientes comandos para actualizar sus aplicaciones:

  1. Instalar el paquete esencial

Once you have prepared your server, you need to equip it with the essential tools. For this purpose, you need to install the build-essential package. This package consists of all the basic tools you need to install stuff from source. You can install it with this command:

  1. Obtener los módulos y dependencias

Por último, debes instalar los módulos y las dependencias. Puedes hacerlo ejecutando el siguiente comando:

Activación de módulos: ¿Cómo configurar Apache con conexiones proxy?

Antes de que comiences a configurar Apache, debes activar tus módulos. Estos módulos te ayudarán a realizar las configuraciones necesarias y llevar a cabo diversas tareas.

Para empezar, debes verificar qué módulos ya están funcionando en tu sistema. No solo eso, sino que también debes asegurarte de que todos los módulos estén instalados correctamente y puedan habilitarse. Ejecutar este comando mostrará todos los módulos disponibles en tu servidor Apache:

a2enmod output

Como puedes ver, la respuesta te muestra todos los módulos disponibles en forma de una lista detallada. Examina esta lista y determina qué módulos deseas activar. Para hacérselo saber a Apache, puedes usar el siguiente comando e ingresar los módulos deseados en lugar de los ejemplos:

Por otro lado, también puedes activar cada módulo individualmente. Para hacer eso, usarías los siguientes comandos:

Es probable que ciertos módulos ya estén activados por defecto en tu servidor. Quizás te preguntes cómo puedes confirmar que están habilitados. Para asegurarte de que el módulo deseado esté activo, puedes intentar activarlo dos veces. Esto garantizará que el módulo esté habilitado.

  1. Modificar la configuración predeterminada

Primero, debes cambiar la configuración predeterminada. Para hacerlo, debes acceder al archivo de configuración predeterminado, que es 000-default.conf. Este archivo se encuentra dentro de /etc/apache2/sites-enabled. Necesitamos modificarlo de tal manera que adquiera la función de proxy.

Comenzarás abriendo el editor de texto nano para editar el host virtual predeterminado. Puedes hacer esto ejecutando este comando:

Nos referiremos colectivamente a mod_virtual host y mod_proxy como el host virtual proxy. Ahora, puedes implementar los siguientes ajustes de configuración. Puedes realizar los cambios necesarios según lo consideres conveniente para tu sistema y tus requisitos:

Puedes guardar y salir una vez que presiones Ctrl + X y confirmes con Y.

  1. Activar la función de balanceo de carga

El balanceo de carga ayuda a distribuir eficazmente las conexiones en tu proxy. Esta es una idea muy útil para cuando estás utilizando múltiples servidores de aplicaciones backend en lugar de uno solo. La función de balanceo de carga distribuirá la conexión o la 'carga'.

Para habilitar esta función, debes repetir los pasos mencionados anteriormente en esta guía. Sin embargo, debes utilizar los siguientes ajustes de configuración al configurar el host virtual:

  1. Activar el soporte de proxy inverso

Deberá hacer que un host virtual admita su proxy inverso si está trabajando con SSL conexiones y certificados. Este host virtual secundario debe tener la siguiente configuración. Deberá realizar las instrucciones de los pasos anteriores. Todo lo que tiene que hacer es reemplazar las opciones de configuración con las que se mencionan a continuación:

También necesitará habilitar el módulo SSL para que la configuración anterior funcione:

  1. Reiniciar Apache

Todas las configuraciones están listas. Finalmente, puede reiniciar su servidor Apache para aplicar los cambios. Puede reiniciar Apache ejecutando el siguiente comando:

Conclusión

¡Voilà! Acaba de configurar con éxito una puerta de enlace de proxy inverso en su servidor Apache. Ahora Apache redirigirá las conexiones entrantes a sus servidores de aplicaciones en el backend.

Lo fantástico de esto es que el proceso de configuración requiere poco esfuerzo y es bastante sencillo. Ahora que conoce los pasos exactos para lograrlo, no debería tener ningún problema para configurar un proxy inverso en Apache.

¡Feliz informática!

Akshay Nagpal

Autor · CloudSigma

Comentarios

Aún no hay comentarios. Sea el primero.