Skip to content

Instantly share code, notes, and snippets.

@Kikobeats
Created October 8, 2014 08:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kikobeats/8e87acf60db34ccd907a to your computer and use it in GitHub Desktop.
Save Kikobeats/8e87acf60db34ccd907a to your computer and use it in GitHub Desktop.
NGINX con NodeJS
Buenas,
Sí, claro: puedes tener varias aplicaciones de Node.js en la misma máquina andando, escuchando cada una por su puerto, y necesitas un proxy inverso para que distribuya el juego según la ruta. Por ejemplo:
Una aplicación web (Node.js) que escucha por el puerto 9000.
Una aplicación de administración (Node.js) que escucha por el 9010.
Un API (Node.js) que escucha por el puerto 9020.
Y un nginx que escucha por el 80, y redirige /web al puerto 9000, /admin a 9010 y /api al 9020.
El proxy inverso tiene la ventaja de que filtra requests inválidas y protege en general contra posibles vulnerabilidades en Node.js. Además, es mucho más fácil hacer keep-alive desde Node.js si todas las peticiones vienen del mismo proceso, con lo que el rendimiento es mejor.
Y, ¿qué mejor proxy inverso que nginx? Pues ahora que lo dices... Yo últimamente uso HAProxy que está pensado específicamente para hacer de proxy inverso. La configuración queda mucho más sencilla y se puede configurar un pool de máquinas, el algoritmo de distribución entre ellas, seguridad, autorización... Así puedes pasar a otra configuración con un balanceador (HAProxy) y varios frontends.
Alex.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment