Веб-серверы
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 может заблокироваться и аварийно завершить работу.
Пример из реального мира
Ebay - во время аукциона, когда у вас есть обратный отсчет за последние 30 секунд. У вас может быть несколько человек, которые активно обновляли страницу и увеличивали ставки. Именно здесь сияет node.js, потому что сегодня вам больше НЕ нужно обновляться. Это связано с тем, что JS очень часто направляет нод к node.js (300 мс ~ 600 мс) от всех клиентов и может предоставить опыт «реального аукциона». Ebay работает не только на node.js, но и на очень сложных фермах серверов с балансировкой нагрузки.
Чтобы собрать и установить Node.js на Pi *:
Очевидно, нет ничего плохого в использовании node.js вместо других и в том, как лучше всего изучить нод, если не на аккуратном маленьком устройстве, таком как Pi. Таким образом, вы можете самостоятельно скомпилировать код следующим образом.
$ sudo apt-get install git-core build-essential libssl-dev
$ mkdir ~/nodeDL && cd ~/nodeDL
$ git clone https://github.com/joyent/node.git
$ git checkout v0.6.15 (to checkout the most recent stable version at time of writing)
обновление: более поздние версии узла (текущая версия v0.8.18) могут быть собраны без специальных шагов ниже
Далее нам нужно указать компилятору использовать armv6
архитектуру для компиляции:
$ export CCFLAGS='-march=armv6'
$ export CXXFLAGS='-march=armv6'
and then edit deps/v8/SConstruct around the line 82 mark, to add “-march=armv6”:
'all': {
'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv6'],
'CXXFLAGS': ['-fno-rtti', '-fno-exceptions', '-march=armv6'],
},
Затем закомментируйте строки, начинающиеся с отметки 157, чтобы удалить части vfp3 и симулятора. Поскольку это JSON-подобный объект, не забудьте удалить запятую в CPPDEFINES
строке!
'armeabi:softfp' : {
'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0']
# 'vfp3:on': {
# 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
# },
# 'simulator:none': {
# 'CCFLAGS': ['-mfloat-abi=softfp'],
# }
},
Затем обычная настройка, make, make install process, NB. Мне пришлось вручную указать расположение OpenSSL libpath:
$ ./configure --openssl-libpath=/usr/lib/ssl
$ make (to compile node (This took 103 minutes!))
$ sudo make install
Вот и все, теперь у вас должна быть работающая установка Node.JS!
$ node -v should show you the version number
$ npm -v should show you the version of the Node Package Manager
* Ссылки и оригинальная статья
Но, как указано в других ответах, вы можете просто скачать предварительно скомпилированный двоичный файл, который будет просто работать.
Выводы
Хороший кусок Пи не плохой. Вы можете запускать практически все на Pi- Просто не ожидайте производительности на уровне производства.