Насколько я понимаю, Node.js не нуждается в NginX для работы в качестве http-сервера (или сервера веб-сокетов или любого другого сервера, если на то пошло), но я продолжаю читать о том, как использовать NginX вместо внутреннего сервера Node.js и не могу найти веская причина идти по этому пути
В чем преимущество использования NginX для Node.js?
Ответы (3)
Здесь http://developer.yahoo.com/yui/theater/video.php?v=dahl-node Автор Node.js говорит, что Node.js все еще находится в разработке, поэтому могут быть проблемы с безопасностью, которые NginX просто скрывает.
С другой стороны, в случае большой трафик NginX сможет разделить работу между множеством запущенных серверов Node.js.
Но будьте готовы: nginx не поддерживает http 1.1 при общении с серверной частью, поэтому такие функции, как поддержка активности или веб-сокеты, не будут работать, если вы поместите узел за nginx.
UPD: см. nginx 1.2.0 - socket.io — HTTP/1.1 — Прокси-соединения через веб-сокет для получения более актуальной информации.
В дополнение к предыдущим ответам есть еще одна практическая причина использовать nginx перед Node.js, и это просто потому, что вы можете запустить более одного приложения Node на своем сервере.
Если приложение Node прослушивает порт 80, вы ограничены этим одним приложением. Если nginx прослушивает порт 80, он может проксировать запросы к нескольким приложениям Node, работающим на других портах.
Также удобно делегировать TLS/SSL/HTTPS Nginx. Выполнение TLS непосредственно в Node возможно, но это требует дополнительной работы и чревато ошибками. С Nginx (или другим прокси-сервером) перед вашим приложением вам не нужно беспокоиться об этом, и есть инструменты, которые помогут вам безопасно настроить его.