En lisant un livre sur les applications Web à page unique, je suis arrivé à un paragraphe qui m'a fait réfléchir:
Node.js est non bloquant et piloté par les événements. En un mot, cela signifie qu'une seule instance Node.js sur un matériel modeste peut gérer des dizaines ou des centaines de milliers de connexions ouvertes simultanées , telles que celles utilisées dans la messagerie en temps réel, ce qui est souvent une caractéristique très souhaitée des SPA modernes.
J'ai remarqué le cas de l' utilisation du Raspberry Pi comme serveur Rails , alors qu'en est-il de Node.js?
Comment configurer mon Raspberry Pi pour servir une application Node.js?
Quelqu'un at-il essayé, y a-t-il des trucs et astuces, peut-être des pièges ou des limitations à considérer?
Edit: Pour éviter les malentendus ou les hors-sujets, concentrons-nous sur le Raspberry Pi, dans le contexte Node.js:
- Dans quelle mesure le Raspberry Pi est-il adapté aux applications Node?
- Si tel est le cas, comment affiner le Raspberry Pi pour de meilleurs résultats?
la source
Réponses:
Obtenir Node.js sur un Raspberry Pi
Vous pouvez soit:
Performance
J'ai fait un test de performance rapide (pour donner une première impression approximative):
Mon Raspberry Pi est overclocké (Turbo) avec un memory_split par défaut (64)
Des tests ont été effectués sur mon réseau local (Wifi 802.11g).
J'ai utilisé l'exemple standard "Hello World" du site Web Node.js:
Paramètres d'Apache Bench:
ab -r -n 10000 -c 100 http://192.168.0.116:1337/
Donc , ces tests ne sont pas représentatifs d'une application Web normale ( à la fois en ce qui concerne la connexion réseau et la longueur / complexité du contenu transféré).
Résultats
À titre de comparaison, j'ai également installé nginx sur mon Raspberry Pi et effectué le même test avec la valeur par défaut "Bienvenue dans nginx!" Fichier HTML:
Optimiser les paramètres du Raspberry Pi
Utilisez
raspi-config
pour modifier les paramètres suivants:la source
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égerlighttpd
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 ilNode.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
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.
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: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!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:
C'est tout, vous devriez maintenant avoir une installation Node.JS fonctionnelle!
* 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.
la source
Q: Dans quelle mesure le Raspberry Pi est-il adapté aux applications Node?
R: Très bien adapté :) Aucun doute là-dessus.
Q: Si tel est le cas, comment affiner le Raspberry Pi pour de meilleurs résultats?
R: Non! Concentrez-vous sur l'écriture d'applications de nœuds très bien conçues. Optimiser votre script d'applications est la voie à suivre.
Utilisez toujours un serveur proxy, par exemple nginex, pour une seule raison: Node.JS est encore dans ses années d'enfance (par rapport à Apache), vous pouvez donc supposer qu'il y a encore des problèmes de sécurité à découvrir.
la source