Честно говоря, я еще не понял его полностью - и даже понимаю, как работает Node.js, как один поток, используя модель события. Я просто не понимаю, как это лучше, чем Apache, и как оно масштабируется горизонтально, если оно однопоточное.
Я обнаружил, что это сообщение в блоге Томислава Капана объясняет это очень хорошо:
Почему ад я использовал бы Node.js? Поэтапное введение
Моя интерпретация его сущности, для Node 0.10, по сравнению с Apache:
Примечание. большинство недоработанных частей, перечисленных ниже, будут улучшены с помощью следующей версии 0.12, что нужно знать.
Все серверные платформы имеют верхний предел. Node.js и Apache оба достигнут его в какой-то момент.
Это зависит от того, как вы его используете. Node.js по умолчанию является однопоточным, но с использованием (относительно) нового кластерного модуля вы можете масштабировать горизонтально по нескольким потокам.
Кроме того, ваши потребности в базе данных также будут определять, насколько эффективным является масштабирование с помощью Node. Например, использование MySQL с Node.js не принесет вам почти такой же пользы, как использование MongoDB, из-за обусловленного событиями характера как MongoDB, так и Node.js.
В следующей ссылке есть много хороших тестов систем с различными настройками: http://www.techempower.com/benchmarks/
Node.js не ранжирует самые высокие, но по сравнению с другими настройками, используя nginx (нет apache в своих таблицах, но достаточно близко), это довольно хорошо.
Опять же, это сильно зависит от ваших потребностей. Я считаю, что если вы просто используете статические веб-сайты, рекомендуется придерживаться более традиционного стека. Однако люди делали некоторые удивительные вещи с помощью Node.js для других нужд: http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/ (c10k? Ha!)
Изменить: стоит упомянуть, что вы действительно не "заменяете" просто apache Node.js. Вы бы заменили apache и php (в типичном стеке лампы).