Webserver
Node.JS
kann als Webserverersatz auf dem Pi verwendet werden, und Sie können problemlos eigenständige oder einseitige Webanwendungen erstellen.
Aber nur zu Ihrer Information, in den meisten realen Anwendungen wird empfohlen, Server wie die moderne nginx
, leichte lighttpd
oder die klobige, aber voll funktionsfähige zu verwenden apache2
! Und dann script node.js, um die Site zu ergänzen.
Offensichtlich sind die Möglichkeiten endlos und alles hängt davon ab, was Sie erreichen möchten.
Himbeer-Pi?
Auf dem Raspberry Pi kann jeder dieser Webserver ausgeführt werden. Es kann auch Node ohne ernsthafte Komplikationen ausführen und ist ohne komplizierte Anpassungen sehr schnell.
Der Raspberry Pi ist sehr leistungsfähig, aber am besten ist es, die Speichersplittung auf Grafik und RAM zu beschränken. Vergessen Sie die Verwendung einer IDE und machen Sie einfach alles über SSH. Wenn Sie wirklich mehr Saft benötigen, setzen Sie einen Kühlkörper auf den BCM-Chip und übertakten Sie ihn, wenn Sie sich sicher fühlen. Eine andere Möglichkeit wäre, mehrere Pi als Cluster zu verwenden, um den Lastenausgleich zu vereinfachen. Hier können Sie sich über Clustering informieren.
Aber müssen Sie wirklich node.js verwenden?
Node.JS
sollte verwendet werden, wenn Sie anfangen (oder damit rechnen), Hunderte und Tausende von Anforderungen zu erhalten, für die kleine Datenblöcke in der Datenbank gespeichert, zwischengespeichert oder mit minimalem Server-Overhead zurückgelesen werden müssen. Sie fahren es also mit JS auf dem Client, aber Node.JS
tatsächlich mit C / C ++. Was passiert also, wenn Sie ein benutzerdefiniertes Modul oder eine bestimmte Änderung im Basiscode benötigen?
In einer Anwendung, die Webseiten bedient, übertrifft node.js Apache normalerweise nicht, beispielsweise bei einzelnen Anforderungen. Die nicht blockierende Funktion von node.js ist großartig, wenn Sie den größten Teil des Tages Tausende von Anfragen pro Sekunde haben. Hier würde Apache blockieren und abstürzen.
Ein echtes Beispiel
Ebay - Während einer Auktion, wenn Sie einen Countdown der letzten 30 Sekunden haben. Sie können mehrere Personen haben, die die Seite kräftig aktualisiert und die Gebote erhöht haben. Hier strahlt node.js, denn heute müssen Sie NICHT mehr aktualisieren. Dies liegt daran, dass der JS sehr häufig (300 bis 600 ms) von allen Clients auf node.js zugreift und in der Lage ist, ein "echtes Auktionserlebnis" zu bieten. Ebay läuft nicht nur auf node.js, sondern auf sehr komplexen Serverfarmen mit Lastenausgleich.
So erstellen und installieren Sie Node.js auf dem Pi *:
Offensichtlich ist nichts falsch daran, node.js anstelle von anderen zu verwenden und wie man node am besten lernt, wenn man nicht auf einem hübschen kleinen Gerät wie dem Pi sitzt. So können Sie den Code selbst kompilieren.
$ 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)
update: spätere Versionen von node (aktuelle Version ist v0.8.18) können ohne die folgenden speziellen Schritte erstellt werden
Als nächstes müssen wir den Compiler anweisen, die armv6
Architektur für die Kompilierung zu verwenden:
$ 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'],
},
Kommentieren Sie dann die Zeilen ab der Markierung 157 aus, um die Teile vfp3 und simulator zu entfernen. Da dies ein JSON-ähnliches Objekt ist, denken Sie daran, das Komma in der CPPDEFINES
Zeile zu entfernen !
'armeabi:softfp' : {
'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0']
# 'vfp3:on': {
# 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
# },
# 'simulator:none': {
# 'CCFLAGS': ['-mfloat-abi=softfp'],
# }
},
Dann der übliche Konfigurations-, Make-, Make-Installationsprozess. Hinweis: Ich musste den Speicherort des OpenSSL-Libpath manuell angeben:
$ ./configure --openssl-libpath=/usr/lib/ssl
$ make (to compile node (This took 103 minutes!))
$ sudo make install
Das wars, du solltest jetzt ein funktionierendes Node.JS installieren!
$ node -v should show you the version number
$ npm -v should show you the version of the Node Package Manager
* Referenzen und Originalartikel
Aber wie in anderen Antworten erwähnt, können Sie einfach eine vorkompilierte Binärdatei herunterladen, die einfach funktioniert.
Schlussfolgerungen
Ein gutes Stück Pi ist nicht schlecht. Sie können auf dem Pi-Just so gut wie alles ausführen. Erwarten Sie keine Leistung auf Produktionsebene.