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:
- 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 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- 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 |
aptitude install -y build-essential |
- Obtener los módulos y dependencias
Por último, debes instalar los módulos y las dependencias. Puedes hacerlo ejecutando el siguiente comando:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
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:
|
1 |
a2enmod |

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:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Por otro lado, también puedes activar cada módulo individualmente. Para hacer eso, usarías los siguientes comandos:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
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.
- 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:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
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:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Puedes guardar y salir una vez que presiones Ctrl + X y confirmes con Y.
- 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Definir servidores back-end: # Servidor 1 BalancerMember http://0.0.0.0:8080/ # Servidor 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # Aplicar la configuración de VH según se desee # Sin embargo, configure el argumento ProxyPass para # usar "mycluster" para balancear la carga ProxyPass / balancer://mycluster </VirtualHost> |
- 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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Establecer la ruta al certificado SSL # Uso: SSLCertificateFile /ruta/a/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Servidores para proxy de la conexión, o; # Lista de servidores de aplicaciones: # Uso: # ProxyPass / http://[Dir IP]:[puerto]/ # ProxyPassReverse / http://[Dir IP]:[puerto]/ # Ejemplo: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # O balancear la carga: # ProxyPass / balancer://balancer_cluster_name </VirtualHost> |
También necesitará habilitar el módulo SSL para que la configuración anterior funcione:
|
1 |
sudo a2enmod ssl |
- 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:
|
1 |
service apache2 restart |
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!

Comentarios
Aún no hay comentarios. Sea el primero.