Cómo usar Apache como proxy inverso: una guía paso a paso

Publicado: 2023-07-23

En esta guía encontrarás la respuesta a Cómo usar Apache como proxy inverso . Un servidor proxy inverso es una poderosa herramienta que actúa como intermediario entre los clientes y los servidores back-end, como servidores web o servidores de aplicaciones. A diferencia de un proxy directo tradicional, que se ubica entre los clientes e Internet, un proxy inverso se ubica entre los clientes y uno o más servidores.

Cuando un cliente realiza una solicitud, el servidor proxy inverso reenvía esa solicitud al servidor backend adecuado en nombre del cliente. Luego toma la respuesta del servidor backend y la envía de regreso al cliente. Este proceso oculta de forma eficaz la identidad y la estructura interna del servidor backend a los clientes.

Los proxies inversos ofrecen varios beneficios, incluida la seguridad mejorada al proteger los servidores back-end de la exposición directa a Internet, el equilibrio de carga para distribuir las solicitudes de los clientes en varios servidores y el almacenamiento en caché para mejorar el rendimiento al entregar contenido almacenado en caché a los clientes.

Tabla de contenido

Distinguir entre proxy directo y proxy inverso

  • Dirección de Proxy:
    • Reenviar proxy: Maneja las solicitudes de los clientes para acceder a los recursos en Internet. Se encuentra entre los clientes e Internet, reenviando las solicitudes de los clientes a servidores externos.
    • Proxy inverso: administra las solicitudes de los clientes para acceder a los recursos dentro de la red de una organización. Se ubica entre los clientes y los servidores backend, reenviando las solicitudes de los clientes al servidor backend apropiado.
  • Perspectiva del cliente:
    • Reenviar proxy: Los clientes normalmente desconocen la existencia del proxy de reenvío. La solicitud del cliente se envía al servidor proxy y el servidor de destino recibe la solicitud como si viniera directamente del cliente.
    • Proxy inverso: Los clientes envían solicitudes directamente al proxy inverso, no a los servidores backend. El proxy inverso luego reenvía las solicitudes a los servidores backend en nombre de los clientes.
  • Caso de uso:
    • Proxy de reenvío: a menudo se usa para filtrar contenido, controlar el acceso y anonimizar las solicitudes de los clientes al ocultar las direcciones IP de los clientes.
    • Proxy inverso : se utiliza principalmente para el equilibrio de carga, la terminación de SSL, el almacenamiento en caché y para proporcionar una puerta de enlace segura a los servicios de back-end.
  • Perspectiva del servidor:
    • Proxy de reenvío : el servidor de destino ve la solicitud procedente del proxy de reenvío, no del cliente original. No tiene conocimiento del cliente real que realiza la solicitud.
    • Proxy inverso: los servidores backend ven el proxy inverso como el cliente que realiza la solicitud. No conocen a los clientes reales que realizan la solicitud original.
  • Implicaciones de seguridad:
    • Forward Proxy: mejora la privacidad del cliente al enmascarar las direcciones IP de los clientes. También puede proporcionar capas de seguridad adicionales al filtrar contenido malicioso antes de que llegue a los clientes.
    • Proxy inverso: Actúa como un escudo para los servidores backend, manteniendo su estructura interna oculta a los clientes externos. Ayuda a proteger contra la exposición directa a Internet y posibles ataques.
  • Ubicación de implementación:
    • Forward Proxy: implementado dentro de la red del cliente o en el dispositivo del cliente para controlar el acceso a Internet saliente.
    • Proxy inverso: implementado en el perímetro de la red de la organización, entre Internet y los servidores back-end, gestionando las solicitudes entrantes de los clientes.

Explorando los diversos casos de uso de los proxies inversos

Los proxies inversos ofrecen una amplia gama de casos de uso que mejoran el rendimiento, la seguridad y la escalabilidad de las aplicaciones y los servicios web.

Algunos de los casos de uso clave de los proxies inversos incluyen

  • Equilibrio de carga: los proxies inversos pueden distribuir las solicitudes de los clientes entrantes en varios servidores backend. Esto ayuda a distribuir la carga, evitar la sobrecarga del servidor y garantizar una mejor utilización de los recursos. El equilibrio de carga mejora el rendimiento general y la capacidad de respuesta de la aplicación.
  • Terminación SSL : los proxies inversos pueden manejar el cifrado y descifrado SSL/TLS en nombre de los servidores back-end. Esto descarga el procesamiento SSL intensivo en recursos de los servidores backend, lo que reduce su carga de trabajo y simplifica la administración de certificados.
  • Almacenamiento en caché: los proxies inversos pueden almacenar recursos solicitados con frecuencia en la memoria caché. Cuando los clientes solicitan los mismos recursos, el proxy inverso sirve el contenido almacenado en caché directamente, lo que reduce la carga del servidor y mejora los tiempos de respuesta.
  • Aceleración web: al almacenar en caché contenido estático y comprimir datos, los proxies inversos pueden acelerar la carga de páginas web para los clientes, lo que da como resultado una experiencia de usuario más fluida.
  • Seguridad y protección DDoS: los proxies inversos actúan como una barrera protectora entre Internet y los servidores back-end. Pueden filtrar y bloquear el tráfico malicioso, proteger contra ataques de denegación de servicio distribuido (DDoS) y ocultar la dirección IP real del servidor backend para evitar ataques directos.
  • Firewall de aplicaciones web (WAF) : los proxies inversos pueden actuar como un WAF, inspeccionando el tráfico entrante en busca de amenazas potenciales, como inyección SQL, secuencias de comandos entre sitios (XSS) y otras actividades maliciosas. Ayudan a proteger las aplicaciones web de vulnerabilidades comunes.
  • Punto de entrada único: los proxies inversos proporcionan un punto de entrada único para que los clientes externos accedan a varios servidores backend. Esto simplifica la arquitectura de la red y permite una gestión y escalado más sencillos de los servicios.
  • Conversión de protocolo: los proxies inversos pueden traducir solicitudes de un protocolo a otro. Por ejemplo, pueden convertir solicitudes HTTP a WebSocket u otros protocolos específicos de la aplicación, lo que facilita la comunicación entre clientes y servidores.
  • Compresión y optimización de contenido: los proxies inversos pueden comprimir el contenido saliente antes de enviarlo a los clientes, lo que reduce el tamaño de la transferencia de datos y mejora los tiempos de carga de la página.

Requisitos previos: configurar Apache como un proxy inverso

Instalar el cliente Bitwise SSH

  1. Busque Bitwise SSH Client en su navegador. Haga clic en el enlace https://www.bitvise.com/ssh-client-download e inicie la instalación

2. Después de la instalación de la configuración, abra el archivo .exe desde su computadora y complete la instalación del cliente Bitvise SSH.

¿Cómo iniciar sesión en el servidor SSH usando bit a bit?

  1. Una vez finalizada la instalación, aparecerá la siguiente ventana. Ingrese su host, puerto y nombre de usuario, seleccione la contraseña del menú desplegable Método inicial y luego haga clic en iniciar sesión. Aparecerá una ventana emergente para ingresar una contraseña. Ingrese su contraseña SSH.

2. Una vez que haya iniciado sesión, haga clic en "Nueva consola de terminal" y aparecerá una terminal de inmediato.

Paso 1 - Instalar Apache

Conectar servidor

Ahora, para establecer una conexión con su servidor y actualizar el índice del paquete local utilizando los repositorios APT, ingrese el siguiente comando en la terminal y presione enter:

 actualización adecuada 

Las actualizaciones tardarán un tiempo en completarse mientras espera a que se completen.

¿Cómo instalar Apache en Ubuntu ?

  1. Instalar Apache en Ubuntu

Ahora, para instalar Apache desde Ubuntu, ingrese el siguiente comando y presione enter

 apt install -y apache2

2. Verificar la versión de Apache

Después de la instalación, tiene la opción de verificar la versión de Apache usando

 apache2 -version

3. Verificar el estado de Apache

También tiene la opción de verificar el estado de Apache2 usando el siguiente comando. Esto lo ayuda a determinar rápidamente si el servidor se está ejecutando y si hay algún problema que requiera atención.

 systemctl status apache2

Como observa, el estado (FIN) que se muestra en su pantalla es una clara indicación de una instalación exitosa de Apache2. Este resultado confirma que el proceso de instalación se completó sin errores ni problemas.

4. Habilitar Apache

Para habilitar Apache2 en Ubuntu, use el comando:

 systemctl enabled apache2

5. Inicie Apache

Si desea reiniciar Apache2 en Ubuntu, use el siguiente comando en la terminal:

 systemctl start apache2

¿Cómo instalar Apache en Almalinux?

  1. Consultar actualizaciones disponibles

Para instalar Apache2 en Almalinux, busque actualizaciones disponibles ejecutando el comando " dnf check-update" .

 dnf check-update

En caso de que se encuentren actualizaciones, procede a actualizar tu Linode con “dnf update”. Además, si algún componente del kernel se actualiza durante el proceso, recuerde reiniciar el Linode con "reiniciar" para aplicar los cambios.

  1. instalar apache

Ahora proceda con la instalación de los paquetes de Apache necesarios.

 dnf install httpd httpd-tools
  1. Iniciar Apache

Después de instalar Apache, no se inicia automáticamente. Para iniciarlo y habilitarlo, utilice la utilidad systemctl .

 systemctl start httpd
  1. Habilitar apache

Para asegurarse de que Apache se reinicia automáticamente cada vez que se reinicia el sistema , actívelo.

 systemctl enable httpd
  1. Comprobar el estado de Apache

Verifique el estado de Apache usando el comando "systemctl status" . Debería mostrarse como activo y en ejecución.

 systemctl status httpd

Paso 2: habilite los módulos de Apache para el proxy inverso

¿Cómo habilitarlo en Ubuntu?

Para utilizar de forma efectiva un proxy inverso con Apache Web Server, debe habilitar módulos específicos de Apache que son cruciales para admitir la funcionalidad adicional requerida por los servidores proxy inversos.

  1. Identificar los módulos requeridos

mod_proxy : Sirviendo como el módulo principal de proxy para Apache, mod_proxy maneja eficientemente las conexiones y redirecciones. Habilita a Apache para que funcione como una puerta de enlace a los servidores back-end subyacentes, lo que lo convierte en un módulo indispensable para todas las configuraciones de proxy inverso.

mod_proxy_http : este módulo se basa en mod_proxy y es indispensable para admitir solicitudes HTTP y HTTPS en un entorno de servidor proxy. Permite que Apache maneje de manera competente la transmisión de aplicaciones web utilizando los protocolos HTTP/HTTPS .

mod_ssl: al proporcionar una funcionalidad esencial, mod_ssl equipa el servidor Apache HTTP con soporte para los protocolos SSL v3 y TLS v1.x. Este módulo es crucial para establecer conexiones cifradas y seguras, garantizar la integridad de los datos y mejorar la seguridad del servidor web.

2. Habilitar módulos

Ahora, activaremos estos módulos usando el comando a2enmod :

 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
  1. Reinicie el servidor Apache2

Después de habilitar cualquier nuevo módulo Apache, es imperativo no pasar por alto el paso crucial de reiniciar el servidor apache2 . Este paso garantiza que los cambios surtan efecto y permite que los módulos recién activados se integren completamente en la configuración del servidor Apache.

 sudo systemctl restart apache2
  1. Verificar módulos

Puede confirmar el estado activo de estos módulos empleando el siguiente comando:

 sudo apachectl -M

Paso 3: configuración del proxy inverso de Apache

Ahora, configure el proxy inverso de Apache para aceptar solicitudes de Internet y reenviarlas de manera efectiva al recurso elegido.

  1. Deshabilitar Apache predeterminado

Para comenzar, deshabilitará el archivo de configuración de host virtual predeterminado de Apache. Esto se puede lograr usando el siguiente comando:

 a2dissite 000-default.conf
  1. Crear un nuevo archivo de configuración

La creación de un nuevo archivo de configuración de host virtual es un paso fundamental en la personalización de Apache para servir diferentes aplicaciones web o sitios web en el mismo servidor. A El host virtual permite que Apache administre múltiples dominios o subdominios, cada uno con su propia configuración y configuración únicas.

Para crear un nuevo archivo de configuración de host virtual, siga estos pasos generales:

Elija un nombre : seleccione un nombre descriptivo para su archivo de host virtual, que normalmente termina con la extensión ".conf". Por ejemplo, "ejemplo.com.conf" o "cyberpanel.conf".

Navegue al directorio de configuración de Apache: en la mayoría de las distribuciones de Linux, los archivos de configuración de Apache se almacenan en el directorio "/etc/apache2/sites-disponible/" . Por ejemplo:

 cd /etc/apache2/sites-available/

Cree el archivo de host virtual : use un editor de texto, como nano o vi, para crear el nuevo archivo de configuración. Por ejemplo:

 sudo nano example.com.conf

Al ingresar el comando anterior, aparecerá el siguiente archivo:

Configure el host virtual : dentro del archivo, use la directiva <VirtualHost> para definir la dirección IP y el puerto para aceptar solicitudes para el host virtual específico. Para un ejemplo básico, permitir todas las direcciones IP en el puerto HTTP predeterminado (puerto 80) , use lo siguiente:

 <VirtualHost *:80>    ServerName site1.com    ServerAlias www.site1.com     ServerAdmin [email protected]    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined    ProxyPass / http://127.0.0.1:8080/    ProxyPassReverse / http://127.0.0.1:8080/    ProxyRequests Off </VirtualHost>

El proceso de configuración comienza definiendo el host virtual con el comando <VirtualHost> , especificando la dirección IP y el número de puerto aceptados para Apache. En este caso, se emplea el carácter comodín *, lo que permite la aceptación de todas las direcciones IP, mientras que el número de puerto se establece en 80 , que representa el puerto HTTP predeterminado. Después de esto, la configuración incluye además los siguientes elementos:

  • ServerName : esta directiva especifica el nombre de dominio asociado con el servidor.
  • ServerAlias: con ServerAlias, puede definir nombres adicionales que aceptará el servidor.
  • ServerAdmin : la directiva ServerAdmin establece la dirección de correo electrónico de contacto que el servidor incluye en los mensajes de error devueltos a los clientes.
  • ErrorLog : ErrorLog establece el nombre de un archivo donde las tiendas Apache encontraron errores.
  • CustomLog: CustomLog establece el nombre de un archivo donde Apache registra las solicitudes de los clientes al servidor.
  • ProxyPass: ProxyPass asigna servidores remotos al espacio del servidor local y define la dirección de destino para la redirección del tráfico. Permite que Apache actúe como un proxy inverso, reenviando solicitudes a servidores backend y mejorando el rendimiento de la aplicación y la distribución de la carga.
  • ProxyPassReverse: ProxyPassReverse es vital para un servidor proxy, ya que reescribe la ubicación original, la ubicación del contenido y los encabezados de respuesta URI HTTP del servidor backend con la información del servidor proxy. Esto garantiza que el proxy inverso maneje correctamente las respuestas y evita que los servidores backend queden expuestos al acceso directo a Internet.
  • ProxyRequests: ProxyRequests evita que el servidor Apache HTTP se utilice como un proxy de reenvío, lo que mejora la seguridad. Por lo general, debe configurarse en "desactivado" cuando se usa ProxyPass para evitar el uso indebido del servidor como un proxy abierto y proteger contra posibles riesgos de seguridad.

Guardar y salir : guarda los cambios y sale del editor de texto.

Habilite el host virtual : use el comando a2ensite para habilitar la nueva configuración del host virtual:

 sudo a2ensite example.com.conf

Vuelva a cargar Apache: para aplicar los cambios, vuelva a cargar Apache para activar el nuevo host virtual:

 sudo systemctl reload apache2

Con estos pasos completados, el nuevo host virtual ahora está activo y listo para servir su sitio web o aplicación designados. Es importante tener en cuenta que los cambios solo surtirán efecto una vez que se haya habilitado el host virtual y se haya recargado Apache. Además, puede colocar los archivos de su sitio web en el directorio especificado por la directiva "DocumentRoot" para asegurarse de que Apache sirva el contenido correctamente para este host virtual en particular.

Verificar configuración: asegúrese de que la configuración del proxy inverso funcione como se esperaba. Visite el nombre de dominio designado (p. ej., "reverse-proxy.example.com") en un navegador web y Apache debería reenviar correctamente las solicitudes al servidor backend.

Tenga en cuenta que es posible que deba configurar ajustes adicionales en función de sus casos de uso específicos, como el manejo de certificados SSL, el equilibrio de carga o el proxy WebSocket . Supervise regularmente el rendimiento y la seguridad del servidor para garantizar un funcionamiento sin problemas.

Cómo usar Apache como proxy inverso en Cyberpanel

En Cyberpanel, la integración de Apache con OpenLiteSpeed ​​en el backend ofrece lo mejor de ambos mundos, combinando las ventajas de velocidad de OpenLiteSpeed ​​con las capacidades ricas en funciones de Apache. En particular, el uso de Apache como proxy inverso no compromete el rendimiento de la memoria caché ls; mantendrá el mismo nivel de rendimiento que con OpenLiteSpeed ​​solo. En esta configuración, OpenLiteSpeed ​​sigue siendo responsable de pasar el tráfico de frontend a Apache, que maneja las solicitudes del backend. Además, esta integración es compatible con los sistemas operativos AlmaLinux y Ubuntu . Al seguir este artículo, los usuarios pueden aprovechar al máximo los beneficios que ofrece la combinación de Apache y OpenLiteSpeed ​​en una configuración de proxy inverso.

Inicie sesión en su panel de Cyberpanel.

Vaya a la opción de sitio web Haga clic en Crear sitio web

Ingrese su nombre de dominio, dirección de correo electrónico y versión de PHP, y seleccione Apache como proxy inverso. Después de ingresar los detalles, haga clic en Crear sitio web. Puede tomar algún tiempo y luego se creará.

Este sitio web funcionará en Apache como un modo de proxy inverso. En la parte delantera, funcionará Openlitespeed, y en la parte trasera, Apache. Entonces, todas sus reglas de htaccess funcionarán como solían funcionar, ya sea que esté usando Cpanel o cualquier otro panel de control.

Puede ver que el sitio se creará correctamente.

Para este sitio, puede administrar la configuración de Apache para este sitio en nuestro administrador de sitios web. Haga clic en Administrar

Una vez que esté aquí, haga clic en Apache Manager

E incluso puede cambiar a Openlitespeed puro también. Así que digamos que quiere decidir que no quiere usar Apache en el backend con este sitio web. Si desea cambiar a Openlitespeed puro , seleccione la versión de PHP y haga clic en cambiar a Openlitespeed puro. También se puede convertir para usar Apache si está usando OpenLitespeed

Estas son configuraciones de Apache. Puede editar fácilmente si desea editar algo, pero asegúrese de saber lo que está haciendo porque algo está mal aquí y su sitio web dejará de funcionar.

En Nuestras configuraciones de Apache, estamos usando PHP-FPM, por lo que estas son las configuraciones de PHP-FPM que está usando

Para configuraciones PHP Vaya a PHP y haga clic en editar configuraciones PHP. Si desea editar las configuraciones de PHP.

Si está utilizando Apache, también necesita editar las configuraciones de Php, por lo que si tiene Apache instalado, verá esta URL.

De forma predeterminada, podrá editar configuraciones para Litespeed Php. Si desea editar configuraciones para Apache también haga clic en EDITAR CONFIGURACIONES DE APACHE

Después de hacer clic en EDITAR CONFIGURACIONES DE APACHE , puede hacer cualquier uso con las configuraciones de Litespeed como post_max_size, upload_max_filesize, max_execution_time o lo que sea.

Asegúrese de que después de editar las configuraciones haga clic en Guardar cambios

Del mismo modo, también puede usar Edición avanzada

Del mismo modo, puede instalar Extensiones de PHP para Apache. Simplemente haga clic en PHP-> Instalar extensiones

Si está utilizando Apache, también necesita ADMINISTRAR LAS EXTENSIONES DE APACHE , por lo que si tiene Apache instalado, verá esta URL.  

De forma predeterminada, podrá instalar extensiones para Litespeed Php. Si desea instalar extensiones para Apache, también haga clic en ADMINISTRAR EXTENSIONES DE APACHE

contenido relacionado

También puede consultar nuestra guía sobre Apache vs NGINX ¿Quién GANA en términos de rendimiento?