Cómo configurar Nginx como proxy inverso para Apache en Debian 11

Tanto Nginx como Apache son servidores web gratuitos, de código abierto y los más populares del mundo. Apache es conocido por su potencia mientras que Nginx es conocido por su velocidad. Ambos tienen algunos pros y contras. Nginx es útil para el contenido estático mientras que Apache lo es para el contenido dinámico. Si combinamos ambos servidores, obtendremos un mejor resultado de cada uno.

En este tutorial, configuraré Apache como servidor backend y utilizaré Nginx como proxy inverso para Apache en Debian 11.

Requisitos previos

  • Un servidor con Debian 11.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

Antes de empezar, se recomienda actualizar la caché de paquetes de tu sistema a la última versión. Puedes actualizarla con el siguiente comando:

apt-get update -y

Después de actualizar la caché de paquetes, instala otras dependencias necesarias utilizando el siguiente comando:

apt-get install gnupg2 curl -y

Una vez instaladas todas las dependencias necesarias, puedes pasar al siguiente paso.

Instalar y configurar Apache

En esta sección, instalaremos el servidor web Apache y lo configuraremos para que se ejecute en el puerto 8000.

En primer lugar, instala el servidor web Apache con el siguiente comando:

apt-get install apache2 -y

Una vez instalado Apache, edita el archivo de configuración de puertos de Apache:

nano /etc/apache2/ports.conf

Cambia el puerto por defecto de Apache de 80 a 8000:

Listen 8000

Guarda y cierra el archivo y luego edita el archivo de configuración por defecto de Apache:

nano /etc/apache2/sites-enabled/000-default.conf

Cambia el puerto por defecto de 80 a 8000 como se muestra a continuación:

<VirtualHost *:8000>

Guarda y cierra el archivo y vuelve a cargar el servicio Apache para aplicar los cambios:

systemctl restart apache2

Ahora, abre tu navegador web y accede a la página de prueba de Apache utilizando la URL http://your-server-ip:8000. Deberías ver la página de prueba de Apache por defecto en la siguiente pantalla:

Página por defecto de Apache

Instalar y configurar Nginx

Ahora, instalaremos y configuraremos Nginx como proxy inverso para pasar las peticiones entrantes al servidor Apache.

Primero, instala el Nginx con el siguiente comando:

apt-get install nginx -y

Una vez instalado Nginx, edita el archivo de configuración del host virtual por defecto de Nginx con el siguiente comando:

nano /etc/nginx/sites-enabled/default

Elimina todas las líneas y añade las siguientes:

server {

listen 80;
index index.php index.html index.htm;

server_name your-server-ip;
                
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Guarda y cierra el archivo y luego verifica que el Nginx no tenga ningún error de sintaxis con el siguiente comando:

nginx -t

A continuación, recarga el servicio Nginx para aplicar los cambios:

systemctl restart nginx

Verificar el servidor web Nginx

En este punto, Nginx está instalado y configurado para pasar todas las peticiones al servidor backend Apache. Ahora puedes abrir tu navegador web y escribir la URL http://your-server-ip. Deberías ver la página por defecto del servidor web Apache en la siguiente pantalla:

Proxy inverso Nginx

Conclusión

Enhorabuena! has instalado y configurado con éxito Nginx como proxy inverso para Apache. Ahora puedes utilizar esta configuración en el entorno de producción para acelerar el rendimiento de tu sitio web.

También te podría gustar...