Node.js: connect.static/express.static или «стандартный» веб-сервер?

Считается ли промежуточное ПО connect.static достаточно надежным для обслуживания статического контента, который представляет собой нечто большее, чем просто таблицы стилей и скрипты?

(Я имею в виду такие ситуации, как обслуживание большого количества файлов изображений).

Или было бы более уместно использовать «стандартный» веб-сервер, такой как nginx, вместе со статическим контентом?


person UpTheCreek    schedule 26.03.2012    source источник


Ответы (1)


Какой-то нагруженный вопрос. Это нормально, пока это не так.

Эти статические промежуточные программы являются удобными методами для преимущественно динамических сайтов. Вы всегда можете переключиться на использование сервера статического контента на основе Node.js, а затем продолжить NginX, который предназначен в первую очередь для обслуживания статического контента, а затем, когда этого недостаточно, вы можете настроить обратный прокси-сервер NginX для нескольких серверов NginX, если дисковый ввод-вывод становится узким местом, и вы можете использовать Циклический DNS для дальнейшего улучшения, если ваш обратный прокси-сервер не может обрабатывать количество входящих подключений и/или вы хотите распространять хостинг по всему миру, и вы всегда можете оплатить всю эту инженерную работу, разместив свой статический контент в CDN.

Итак, сделайте несколько тестов. Сколько запросов, по вашему мнению, будет на вашем сайте? Какой процент будет статическим по сравнению с динамическим контентом? Какая часть этого статического контента может быть кэширована конечным пользователем по второму запросу? Насколько велики эти файлы в среднем?

Как только вы сможете рассчитать что-то вроде «4000 запросов в секунду с общей пропускной способностью 30 МБ в секунду», вы сможете решить, где по скользящей шкале хостинга статического контента вы должны создавать.

person Community    schedule 26.03.2012
comment
+1 вы вряд ли достигнете границ. И если вы это сделаете, переключитесь на CDN. - person Jan Jongboom; 27.03.2012
comment
В основном я отвечал на скользящую шкалу предоставления статического контента в случае, если ему не разрешалось использовать CDN (большой интранет-сайт для корпорации [ха!], или бизнес, где обслуживаемый контент является частью рыночной стоимости компании). и должен находиться под жестким контролем [Facebook]). - person ; 27.03.2012
comment
Спасибо за ответ. Я не хотел, чтобы это был загруженный вопрос. Просто такие вещи, как nginx, имеют хорошую репутацию для обслуживания статического контента, в то время как connect.static кажется чем-то вроде неизвестной величины. Я еще не на той стадии, когда я могу проводить тесты, и да, CDN могут быть вариантом в будущем (и, конечно, решат проблему), но сейчас я оцениваю местные решения. Сначала я надеялся узнать немного об опыте других людей со службой статического контента от node. - person UpTheCreek; 27.03.2012
comment
Личный опыт работы с микроэкземпляром Amazon AWS: статическое промежуточное ПО Express дает около 4500 ответов в секунду для небольшого файла, а Lighttpd дает нам около 7000 ответов в секунду. Производительность NginX должна быть примерно такой же, как у Lighttpd — чуть более чем на 50 % быстрее для небольших файлов. Большие файлы в основном ограничены пропускной способностью. - person ; 27.03.2012