Читая книгу об одностраничных веб-приложениях, я пришел к абзацу, который заставил меня задуматься:
Node.js неблокируемый и управляемый событиями. Короче говоря, это означает, что один экземпляр Node.js на скромном оборудовании может обрабатывать десятки или сотни тысяч одновременно открытых соединений , таких как те, которые используются в обмене сообщениями в реальном времени, что часто является весьма желательной функцией современных SPA.
Я заметил случай использования Raspberry Pi в качестве сервера Rails , так как насчет Node.js?
Как настроить мой Raspberry Pi для обслуживания приложения Node.js?
Кто-нибудь пробовал, есть ли советы и хитрости, возможно, есть ошибки или ограничения для рассмотрения?
Редактировать: чтобы избежать недоразумений или не по теме, давайте, пожалуйста, сосредоточимся на Raspberry Pi, в контексте Node.js:
- Насколько Raspberry Pi подходит для приложений Node?
- Если это так, как можно точно настроить Raspberry Pi для достижения наилучших результатов?
источник
Ответы:
Получение Node.js на Raspberry Pi
Вы также можете:
Производительность
Я сделал быстрый тест производительности (чтобы получить грубое первое впечатление):
Мой Raspberry Pi разогнан (Turbo) с памятью по умолчанию (64)
Тесты проводились в моей локальной сети (802.11g Wifi).
Я использовал стандартный пример «Hello World» с сайта Node.js:
Настройки Apache Bench:
ab -r -n 10000 -c 100 http://192.168.0.116:1337/
Таким образом, эти тесты не являются репрезентативными для обычного веб-приложения (как в отношении сетевого подключения, так и в отношении длины / сложности передаваемого контента).
Результаты
Для сравнения я также установил nginx на свой Raspberry Pi и запустил тот же тест со значением по умолчанию "Welcome to nginx!" HTML-файл:
Оптимизация настроек Raspberry Pi
Используйте
raspi-config
для изменения следующих настроек:источник
Веб-серверы
Node.JS
может использоваться в качестве замены веб-сервера на Pi, и вы можете легко создавать автономные или одностраничные веб-приложения.Но только для вашей информации, в большинстве реальных приложений рекомендуется использовать серверы, такие как современные
nginx
, легкиеlighttpd
или массивные, но полнофункциональныеapache2
! А затем скрипт node.js для дополнения сайта.Очевидно, что возможности безграничны, и все зависит от того, чего вы хотели бы достичь.
Raspberry Pi?
Raspberry Pi может работать на любом из этих веб-серверов. Он также может запускать Node без каких-либо серьезных осложнений и действительно быстр без каких-либо сложных настроек.
Raspberry Pi очень способный, но лучше всего было бы превратить разделение памяти в минимум графики и большей части оперативной памяти. Забудьте об использовании IDE и просто делайте все через SSH. Если вам действительно нужно еще сока, установите радиатор на чип BCM и разгоните его, чтобы чувствовать себя в безопасности. Другой вариант - использовать несколько Pi в качестве кластера, чтобы помочь с балансировкой нагрузки. Вы можете начать копаться здесь о кластеризации.
Но вам действительно нужно использовать node.js?
Node.JS
предназначался для использования, когда вы начинаете (или ожидаете) получать сотни и тысячи запросов, требующих сохранения небольших кусков данных в БД, кэширования или считывания с минимальными нагрузками на сервер. Таким образом, вы управляете им с помощью JS на клиенте, ноNode.JS
на самом деле он управляется C / C ++. Так что же произойдет, если вам понадобится специальный модуль или конкретное изменение в базовом коде?В приложении, которое обслуживает веб-страницы node.js, обычно не превосходит apache, например, по отдельным запросам. Неблокирующая функция node.js хороша, если у вас есть тысячи запросов в секунду в течение большей части дня, вот где apache может заблокироваться и аварийно завершить работу.
Пример из реального мира
Чтобы собрать и установить Node.js на Pi *:
Очевидно, нет ничего плохого в использовании node.js вместо других и в том, как лучше всего изучить нод, если не на аккуратном маленьком устройстве, таком как Pi. Таким образом, вы можете самостоятельно скомпилировать код следующим образом.
обновление: более поздние версии узла (текущая версия v0.8.18) могут быть собраны без специальных шагов ниже
Далее нам нужно указать компилятору использовать
armv6
архитектуру для компиляции:Затем закомментируйте строки, начинающиеся с отметки 157, чтобы удалить части vfp3 и симулятора. Поскольку это JSON-подобный объект, не забудьте удалить запятую в
CPPDEFINES
строке!Затем обычная настройка, make, make install process, NB. Мне пришлось вручную указать расположение OpenSSL libpath:
Вот и все, теперь у вас должна быть работающая установка Node.JS!
* Ссылки и оригинальная статья
Но, как указано в других ответах, вы можете просто скачать предварительно скомпилированный двоичный файл, который будет просто работать.
Выводы
Хороший кусок Пи не плохой. Вы можете запускать практически все на Pi- Просто не ожидайте производительности на уровне производства.
источник
Q: Насколько Raspberry Pi подходит для приложений Node?
A: Очень хорошо подходит :) Без сомнения об этом.
Q: Если это так, как можно настроить Raspberry Pi для достижения наилучших результатов?
A: Не надо! Сосредоточьтесь на написании очень хорошо разработанных узловых приложений. Оптимизация сценариев ваших приложений - путь.
Всегда используйте прокси-сервер, например nginex, только по одной причине: Node.JS все еще находится в детстве (по сравнению с Apache), поэтому вы можете предположить, что проблемы безопасности еще предстоит обнаружить.
источник