Cargando



Nginx - Reverse Proxy

En este tutorial veremos los puntos que debemos cubrir cuando configuramos nuestra instalación de Nginx como un reverse proxy.


may 18 2014 00:11
Profesional
may 19 2014 20:17
El proceso de reverse proxy que hace Nginx es uno de sus usos más populares, ya que permite que el mismo administre los recursos de forma más eficiente, dirigiendo las peticiones dependiendo de su estructura, así podemos lograr que estemos sirviendo una página web cuyo lenguaje sea PHP y hacer que Apache procese todo lo que tenga que ver con esto y Nginx solo los archivos estáticos.

Claro esto que explicamos fue solo un pequeño ejemplo de lo que se puede lograr con un reverse proxy, sin embargo para ahondar en estos temas veremos los puntos fuertes del reverse proxy a continuación.

Configuración

La estructura que sigue el proceso cuando se utiliza el reverse proxy, es que se toma la petición del cliente y según su estructura la pasamos a otro servidor que hará el procesamiento correspondiente y finalmente Nginx devuelve la respuesta adecuada recibida de dicho servidor; estos servidores son llamados upstream servers, ya que solo se encargan de obtener parámetros de subida para procesamiento.

¿Cómo lograrlo?
Para lograr lo anteriormente explicado, nos vamos a valer de una directiva en Nginx, esta es el proxy_pass, en este colocaremos la ruta del servidor upstream que debe recibir la petición, sin embargo antes de pasarle la petición también podemos aplicarle algunas reglas a la petición de forma que podamos maximizar el uso de Nginx.


Veamos en la siguiente imagen como podemos trasladar todo esto a un archivo de configuración de Nginx:

nginx_reverseproxy.jpg


Obviamente estos parámetros no son aptos para funcionar, pero podemos ver a que nos referimos, abrimos un bloque location y recibimos la petición, luego dentro de este le decimos con proxy_pass donde se encuentra nuestro upstream server y este recibirá la nueva petición de parte de Nginx, de forma que el usuario realmente no sepa que hay algo más detrás de lo que está viendo.

Excepciones
Existen excepciones para este comportamiento, generalmente es cuando utilizamos expresiones regulares y directivas rewrite con lo que la nueva petición es pasada al upstream server directamente sin transformación, haciendo así que sea innecesario tener que definir esto el proxy pass.


Veamos en la siguiente imagen una configuración que nos demuestra lo que hemos explicado:


nginx_reverseproxy2.jpg


En el primer bloque location vemos que estamos haciendo un llamado con una expresión regular y en el segundo bloque tenemos una directiva rewrite que hace un match con el parámetro que acompañe a la petición por el URL.

¿En qué nos ayuda el reverse proxy?
El reverse proxy es una forma bastante popular de ayudar a mejorar el rendimiento de los servicios cuando tenemos sistemas de backend pesados y que no podemos hacer mucho, también nos ayuda cuando estamos construyendo una estructura desde el inicio ya que podemos planificar a futuro con ideas de crecimiento y expansión.


Finalizando este tutorial podemos decir que sea cual sea la situación Nginx hace un trabajo excepcional, con funcionalidades como el reverse proxy, permitiendo traer nueva vida a nuestros desarrollos e infraestructuras.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X