Serveurs Web
Node.JS
peut être utilisé comme remplacement de serveur Web sur le Pi et vous pouvez facilement créer des applications Web autonomes ou à page unique.
Mais juste pour votre information, dans la plupart des applications du monde réel, il est recommandé d'utiliser des serveurs comme le moderne nginx
, le poids léger lighttpd
ou le gros morceau mais entièrement équipé apache2
! Et puis script node.js pour compléter le site.
Évidemment, les possibilités sont infinies et tout dépend de ce que vous souhaitez réaliser.
Tarte aux framboises?
Le Raspberry Pi peut exécuter n'importe lequel de ces serveurs Web. Il peut également exécuter Node sans complications graves et est très rapide sans aucun réglage compliqué.
Le Raspberry Pi est très capable, mais le mieux serait de transformer la mémoire partagée en moindres graphiques et plus de RAM. Oubliez l'utilisation d'un IDE et faites tout simplement via SSH. Si vous avez vraiment besoin de plus de jus, mettez un dissipateur de chaleur sur la puce BCM et overclockez- le comme vous vous sentez en sécurité. Une autre option serait d'utiliser plusieurs Pi en tant que cluster pour aider à l'équilibrage de charge. Vous pouvez commencer à creuser ici à propos du clustering.
Mais avez-vous vraiment besoin d'utiliser node.js?
Node.JS
a été conçu pour être utilisé lorsque vous démarrez (ou prévoyez) d'obtenir des centaines et des milliers de demandes qui nécessitent que de petits morceaux de données soient stockés dans la base de données, mis en cache ou relus avec une surcharge minimale du serveur. Vous le pilotez donc à l'aide de JS sur le client, mais il Node.JS
est en réalité piloté par C / C ++. Alors, que se passe-t-il si vous avez besoin d'un module personnalisé ou d'un changement spécifique dans le code de base?
Dans une application qui dessert des pages Web, node.js ne surpasse généralement pas apache, par exemple, sur des requêtes uniques. La fonctionnalité non bloquante de node.js est excellente si vous avez des milliers de requêtes par seconde pendant la majeure partie de la journée, c'est là qu'apache se bloquerait et planterait.
Un exemple du monde réel
Ebay - Lors d'une vente aux enchères lorsque vous avez un compte à rebours des 30 dernières secondes. Plusieurs personnes ont pu actualiser la page avec vigueur et augmenter les enchères. C'est là que node.js brille, car aujourd'hui vous n'avez plus besoin de rafraîchir. En effet, le JS ajaxes à node.js très souvent (300 ms ~ 600 ms) de tous les clients et est en mesure de fournir une expérience de «vente aux enchères réelle». Ebay ne fonctionne pas uniquement sur node.js mais sur des batteries de serveurs à charge équilibrée très complexes.
Pour construire et installer Node.js sur le Pi *:
De toute évidence, il n'y a rien de mal à utiliser node.js à la place des autres et la meilleure façon d'apprendre node si ce n'est sur un petit appareil soigné comme le Pi. Vous pouvez donc compiler le code vous-même comme ceci.
$ 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)
mise à jour: les versions ultérieures du nœud (la version actuelle est la v0.8.18) peuvent être construites sans les étapes spéciales ci-dessous
Ensuite, nous devons dire au compilateur d'utiliser l' armv6
architecture pour la compilation:
$ 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'],
},
Ensuite, commentez les lignes commençant autour de la marque 157, pour supprimer les parties vfp3 et simulateur. Comme il s'agit d'un objet de type JSON, n'oubliez pas de supprimer la virgule sur la CPPDEFINES
ligne!
'armeabi:softfp' : {
'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0']
# 'vfp3:on': {
# 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
# },
# 'simulator:none': {
# 'CCFLAGS': ['-mfloat-abi=softfp'],
# }
},
Ensuite, le processus habituel de configuration, de fabrication, de création d'installation, NB J'ai dû spécifier manuellement l'emplacement du chemin d'accès lib OpenSSL:
$ ./configure --openssl-libpath=/usr/lib/ssl
$ make (to compile node (This took 103 minutes!))
$ sudo make install
C'est tout, vous devriez maintenant avoir une installation Node.JS fonctionnelle!
$ node -v should show you the version number
$ npm -v should show you the version of the Node Package Manager
* Références et article original
Mais comme indiqué dans d'autres réponses, vous pouvez simplement télécharger le binaire pré-compilé qui fonctionnera.
Conclusions
Un bon morceau de Pi n'est pas mauvais. Vous pouvez exécuter à peu près n'importe quoi sur le Pi- N'attendez pas les performances au niveau de la production.