Будучи новичком в веб-мире, я всегда использовал Apache для разработки приложений на PHP. Устав от этого, я изучил Node.js, Rails и Django - просто чтобы почувствовать вкус каждой из наиболее используемых в настоящее время веб-фреймворков. Все они имеют встроенные веб-серверы - Django рекламируется только для целей разработки - и я не уверен, что мне нужно специальное серверное программное обеспечение. Даже если бы я мог, это был бы Nginx - мне показалось, что его легче настроить, и я слышал, что он намного лучше справляется с высокими нагрузками, чем Apache.
Однако мой вопрос: каковы преимущества использования веб-сервера, такого как Nginx или Lighttpd с FastCGI, по сравнению, например, с производственными серверами Rails или Pyramid? Следует ли использовать однострочный сервер Node.js для производства (например, хорошо ли он справляется с работой)?
Вкратце: почему бы мне не использовать «Официантку», «Вебрик» или «http» на Node.js?
Rails и Django - это фреймворки для разработки, чтобы иметь возможность обслуживать запросы из веб-браузера, им нужен веб-сервер, который будет выполнять код. Я не уверен насчет Node.js, но ожидал, что они похожи.
Rails и Django сами по себе не являются веб-серверами, но они используют небольшой веб-сервер во время разработки, чтобы упростить задачу. Вот как можно бегать, например:
rails server
и работает ли ваше приложение на localhost: 3000. В случае Rails используемый веб-сервер называется Webrick. Эти небольшие веб-серверы очень удобны для разработки, но их нельзя использовать в производственной среде. С точки зрения безопасности они не обязательно усилены, и они также не оптимизированы по скорости. В производственных средах вы должны использовать Nginx или Apache.