2010-07-06 16 views
27

Por lo que entiendo Node.js no necesita NginX para funcionar como un servidor http (o un servidor websockets o cualquier servidor para el caso), pero sigo leyendo sobre cómo usar NginX en lugar del servidor interno Node.js y no puedo encontrar de una buena razón para ir de esa manera¿Cuál es la ventaja de utilizar NginX para Node.js?

+0

Creo que es más adecuado para ServerFault. – mbq

+4

no, no es para serverfault – mamu

+0

Ok, no voy a discutir ;-) – mbq

Respuesta

28

Aquí http://developer.yahoo.com/yui/theater/video.php?v=dahl-node Node.js Node.js autor dice que está todavía en desarrollo y lo que puede haber problemas de seguridad que Nginx simplemente esconde.
Por otro lado, en caso de tráfico pesado, NginX podrá dividir el trabajo entre muchos servidores que ejecutan Node.js.

+0

¡oh gracias! Finalmente una respuesta satisfactoria. Doble gracias por el enlace – Purefan

9

Pero prepárese: nginx no es compatible con http 1.1 mientras habla con el back-end, por lo que las funciones como keep-alive o websockets no funcionarán si coloca el nodo detrás del nginx.

UPD: consulte nginx 1.2.0 - socket.io - HTTP/1.1 - Proxy websocket connections para obtener más información actualizada.

+0

No entiendo, ¿tiene algún material que explique eso? – rizidoro

+2

Lo que quiere decir es que NginX puede hablar con Http 1.1 a clientes que se conectan a él, pero no a servidores proxy, por ejemplo, si tiene una aplicación NodeJS que implementa Socket.io y se conecta a esa aplicación a través de NginX, simplemente lo hará no funciona para websockets – Purefan

+1

Nginx does [admite HTTP 1.1 desde la versión 1.2.0] (http://wiki.nginx.org/Main). ¿Puedes actualizar tu respuesta? –

8

Además de las respuestas anteriores, hay otra razón práctica para usar nginx en frente de Node.js, y eso es simplemente porque es posible que desee ejecutar más de una aplicación de nodo en su servidor.

Si una aplicación Node está escuchando en el puerto 80, está limitado a esa aplicación. Si nginx está escuchando en el puerto 80, puede proxy las solicitudes a múltiples aplicaciones de nodo que se ejecutan en otros puertos.

También es conveniente delegar TLS/SSL/HTTPS a Nginx. Hacer TLS directamente en Nodo es posible, pero es un trabajo extra y propenso a errores. Con Nginx (u otro proxy) al frente de su aplicación, no tiene que preocuparse por eso y hay tools to help you securely configure it.

Cuestiones relacionadas