En el sistema operativo Linux, un proxy inverso actúa como enlace entre el host (cliente) y el servidor. Toma las solicitudes de los clientes y las pasa a otros servidores y finalmente entrega la respuesta del servidor al cliente, apareciendo como si se originaran en el propio servidor proxy. En este tutorial, le mostraremos qué es un proxy inverso Nginx y cómo configurarlo en su VPS.
El cliente y el servidor intercambian información continuamente para trabajar de manera eficiente. Por lo general, los servidores web utilizan proxies inversos. Un proxy inverso o puerta de enlace aparece para el cliente como un servidor web ordinario, donde no se necesitan configuraciones especiales. El cliente realiza solicitudes ordinarias mientras que el proxy inverso decide dónde pasar la información entregando el resultado final al cliente como si fuera el origen.
El proxy inverso de Nginx tiene una amplia gama de beneficios. Es uno de los servidores de código abierto más utilizados en Internet.
Las ventajas de usar Nginx Reverse Proxy
Profundicemos en las razones que explican por qué esta herramienta es tan popular:
- Es simple de implementar y proporciona al usuario una seguridad de alto nivel contra ataques a servidores web como DDoS y DoS
- El proxy inverso de Nginx ayuda a crear una carga equilibrada entre varios servidores back-end y proporciona almacenamiento en caché para un servidor back-end más lento
- Nginx no requiere configurar un nuevo proceso para cada solicitud web del cliente. Por el contrario, la configuración predeterminada comprende un proceso de trabajo por CPU
- Puede actuar como un servidor proxy inverso para varios protocolos como HTTP, HTTPS, TCP, UDP, SMTP, IMAP y POP3
- Puede manejar más de 10000 conexiones con una huella de memoria baja. Nginx puede operar múltiples servidores web a través de una sola dirección IP y entregar cada solicitud al servidor correcto dentro de una LAN
- Nginx es uno de los mejores servidores web para mejorar el rendimiento del contenido estático. Además, también puede ser útil servir contenido de caché y realizar el cifrado SSL para reducir la carga del servidor web
- También puede ser útil al optimizar el contenido al comprimirlo para aumentar el tiempo de carga
- Nginx puede realizar experimentos aleatorios o pruebas A/B sin colocar códigos JavaScript en las páginas.
¡Y todos estos beneficios son solo la punta del iceberg! ¡Cuanto más use Nginx Reverse Proxy, más características descubrirá!
¿Cómo configurar un proxy inverso de Nginx?
Ahora, configuraremos Nginx frente a un servidor web Apache. Elegimos el servidor Apache porque es mejor para manejar contenido dinámico.
Entonces, todo el contenido estático irá a Nginx, mientras que el contenido dinámico irá a Apache. Esto mejorará el rendimiento al optimizar la entrega de contenido según los criterios de manejo.
A continuación, definiremos la dirección IP del servidor proxy Nginx como 192.x.x.1 y el servidor Apache back-end como 192.x.x.2 . Después de configurar Apache, podemos continuar con estos pasos:
1. Instalar Nginx
Usaremos el comando apt en Ubuntu 18.04:
sudo apt-get update
sudo apt-get install nginx
2. Deshabilitar el host virtual predeterminado
Una vez que haya instalado Nginx, siga el siguiente comando para deshabilitar el host virtual:
sudo unlink /etc/nginx/sites-enabled/default
3. Crear el proxy inverso de Nginx
Después de deshabilitar el host virtual, debemos crear un archivo llamado reverse-proxy.conf dentro de etc/nginx/ sitios disponibles directorio para mantener la información del proxy inverso.
Para esto, primero debemos acceder al directorio usando el comando cd:
cd etc/nginx/sites-available/
Luego podemos crear el archivo usando el editor vi:
vi reverse-proxy.conf
En el archivo necesitamos pegar estas cadenas:
server { listen 80; location / { proxy_pass http://192.x.x.2; } }
En el comando anterior, el punto importante es que el pase de proxy permite que las solicitudes que llegan a través del proxy inverso de Nginx pasen a 192.x.x.2:80 , que es el socket remoto de Apache. Por lo tanto, ambos servidores web, Nginx y Apache, comparten el contenido.
Una vez completado, simplemente guarde el archivo y salga del editor vi. Puede hacerlo tecleando :wq .
Para pasar información a otros servidores, puede usar el ngx_http_proxy_module en la terminal.
Ahora, activa las directivas enlazando a /sites-enabled/ usando el siguiente comando:
sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf
4. Pruebe Nginx y el proxy inverso de Nginx
Por último, debemos ejecutar una prueba de configuración de Nginx y reiniciar Nginx para verificar su rendimiento. Escriba el siguiente comando para verificar el funcionamiento de Nginx en la terminal de Linux:
service nginx configtest
service nginx restart
Recuerde, si recibe una prueba fallida, lo más probable es que indique que Apache no se configuró correctamente.
Conclusión
Hay muchos beneficios de configurar un proxy inverso Nginx en el sistema operativo Linux. Puede aumentar el rendimiento de manera efectiva y mejorar la seguridad contra el malware. La configuración del proxy inverso de Nginx es un proceso simple en la terminal de Linux. Aunque hay una gran cantidad de formas de instalarlo y configurarlo que dependen completamente de sus requisitos, el tutorial anterior es sencillo y sencillo para ayudarlo a comenzar con la configuración de un proxy inverso.