网络服务器
Node.JS
可以用作Pi上的Web服务器替代品,并且可以轻松创建独立或单页Web应用程序。
但是,仅供参考,在大多数实际应用中,建议使用服务器,例如现代nginx
,轻便lighttpd
或矮胖但功能齐全的服务器apache2
!然后编写node.js脚本以补充该站点。
显然,可能性无穷无尽,一切都取决于您想要实现的目标。
树莓派?
Raspberry Pi可以运行任何这些Web服务器。它还可以在没有任何严重复杂性的情况下运行Node,并且运行速度非常快,而无需进行任何复杂的调整。
Raspberry Pi非常有能力,但最好的办法是将内存拆分为最少的图形和最多的RAM。不用使用IDE,只需通过SSH完成所有操作即可。如果您确实需要更多果汁,请在BCM芯片上放一个散热器,并在感到安全的情况下对其进行超频。另一个选择是将多个Pi作为群集来帮助实现负载平衡。您可以在这里开始研究集群。
但是,您真的需要使用node.js吗?
Node.JS
旨在在您开始(或预期)获取成千上万的请求时需要,这些请求需要将少量数据存储到DB,进行缓存或以最小的服务器开销回读。因此,您可以在客户端上使用JS驱动它,但Node.JS
实际上是由C / C ++驱动的。那么,如果您需要自定义模块或基本代码中的特定更改怎么办?
在提供网页服务的应用程序中,例如在单个请求上,node.js通常不会胜过apache。如果您在一天中的大部分时间每秒都有成千上万的请求,则node.js的非阻塞功能非常有用,这是apache阻塞和崩溃的地方。
一个真实的例子
易趣-在拍卖中,您可以倒数30秒。您可能有几个人曾经大力刷新页面并提高了出价。这是node.js的亮点,因为今天您无需再刷新。这是因为JS非常频繁地(300毫秒至600毫秒)从所有客户端移至node.js,并且能够提供“现实生活中的拍卖”体验。Ebay并非仅在node.js上运行,而是在非常复杂的负载平衡服务器场上运行。
要在Pi *上构建并安装Node.js:
显然,使用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'],
# }
},
然后,在通常的配置,制作,制作安装过程中,请注意,我必须手动指定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还不错。您可以在Pi上运行几乎任何东西-只是不要期望生产水平的性能。