Apache y Nginx son servidores web gratuitos, de código abierto y los más utilizados en el mundo. Apache es el servidor número uno, mientras que Nginx ocupa el segundo lugar. Apache es conocido por su potencia y compatibilidad con backend, mientras que Nginx es conocido por su velocidad. Nginx proporciona un amplio conjunto de características que incluyen balanceo de carga, seguridad y aceleración. El uso de Nginx como proxy inverso le permite utilizar estas funciones para cualquier aplicación web.
La configuración de un proxy inverso lo ayuda a ocultar la identidad de sus servidores backend y proteger sus servidores de ataques. Un proxy inverso también realiza el equilibrio de carga y distribuye la solicitud del cliente entre los servidores backend. Esto puede ser muy útil cuando algunos servidores se sobrecargan debido a un pico repentino en las solicitudes de los clientes.
El uso de Nginx como proxy inverso para Apache permitirá que ambos servidores trabajen juntos y le permitirá aprovechar los beneficios de ambos servidores. Puede monitorear fácilmente qué tráfico entra y sale a través del proxy inverso.
En este tutorial, aprenderemos cómo instalar y configurar Nginx como proxy inverso para Apache en Ubuntu 18.04 VPS. Configuraremos Apache para que se ejecute en el puerto 8080, configuraremos Nginx para que se ejecute en el puerto 80 y reenviaremos las solicitudes de los clientes que lleguen en el puerto 80 al servidor web Apache.
Requisitos
- Un VPS de servidor Ubuntu 18.04 nuevo en Atlantic.net Cloud.
- Un nombre de dominio válido apunta a su dirección IP de VPS. En este tutorial, usaremos example.com
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo, con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar y configurar Apache
Primero, deberá instalar el servidor web Apache en su VPS. Puede instalar Apache ejecutando el siguiente comando:
apt-get install apache2 -y
Una vez instalado, inicie el servicio web Apache y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start apache2 systemctl enable apache2
nano /etc/apache2/ports.conf
Busque la siguiente línea:
Listen 80
Reemplácelo con lo siguiente:
Listen 127.0.0.1:8080
Guarde y cierre el archivo. Luego, abra el archivo de host virtual predeterminado de Apache con el siguiente comando:
nano /etc/apache2/sites-available/000-default.conf
Busque la siguiente línea:
<VirtualHost *:80>
Reemplácelo con lo siguiente:
<VirtualHost 127.0.0.1:8080>
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio web Apache para aplicar todos los cambios de configuración:
systemctl restart apache2
Ahora puede verificar que el servidor web Apache está escuchando en el puerto 8080 con el siguiente comando:
netstat -ant | grep 8080
Debería ver el siguiente resultado:
tcp 0 127.0.0.1:8080 0.0.0.0:* LISTEN
Paso 3:instalar y configurar Nginx
A continuación, deberá instalar Nginx y configurarlo como un proxy inverso para reenviar las solicitudes que llegan en el puerto 80 al servidor web Apache que está escuchando en el puerto 8080.
Puede instalar el servidor web Nginx ejecutando el siguiente comando:
apt-get install nginx -y
Una vez instalado, inicie el servicio Nginx y habilítelo para que se inicie después de reiniciar el sistema:
systemctl start nginx systemctl enable nginx
A continuación, configure el proxy inverso de Nginx creando un nuevo archivo de host virtual:
nano /etc/nginx/sites-available/example.com
Agregue las siguientes líneas:
server { listen 80; root /var/www/html/; index index.html index.htm; server_name example; location \ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } }
Guarde y cierre el archivo. Luego, habilite el archivo de configuración del host virtual con el siguiente comando:
ln -s /etc/nginx/sites-disponible/example.com /etc/nginx/sites-enabled/
Luego, verifique Nginx por cualquier error de sintaxis con el siguiente comando:
nginx -t
Si todo es correcto, debería obtener el siguiente resultado:
nginx:la sintaxis del archivo de configuración /etc/nginx/nginx.conf está bien
nginx:la prueba del archivo de configuración /etc/nginx/nginx.conf es exitosa
Finalmente, reinicie el servicio Nginx para aplicar estos cambios de configuración:
systemctl reiniciar nginx
Paso 4:pruebe el proxy inverso de Nginx
Nginx y Apache están instalados y configurados correctamente. Ahora, puede probar la funcionalidad del proxy inverso de Nginx.
Para hacerlo, abra su navegador web y escriba la URL http://example.com. Será redirigido a la página predeterminada de Apache como se muestra en la siguiente pantalla:
Conclusión
¡Felicidades! Ha instalado y configurado correctamente Nginx como un proxy inverso para el servidor web Apache. También puede configurar Nginx como proxy inverso para otras aplicaciones como Tomcat, Wildfly, Node.Js y Glassfish.
Si está listo para comenzar con un servidor privado virtual para alojar sus sitios web, visite la página de alojamiento VPS de Atlantic.Net para encontrar un paquete de alojamiento adecuado para usted.