Serwery WWW
Node.JS
może być używany jako zamiennik serwera WWW w Pi i możesz z łatwością tworzyć samodzielne lub jednostronicowe aplikacje internetowe.
Ale tylko dla twojej informacji, w większości rzeczywistych aplikacji zaleca się używanie serwerów takich jak nowoczesny nginx
, lekki lighttpd
lub masywny, ale w pełni wyposażony apache2
! A następnie skrypt node.js, aby uzupełnić witrynę.
Oczywiście możliwości są nieograniczone i wszystko zależy od tego, co chcesz osiągnąć.
Raspberry Pi?
Raspberry Pi może obsługiwać dowolny z tych serwerów WWW. Może także uruchamiać Węzeł bez żadnych poważnych komplikacji i jest naprawdę szybki, bez żadnych skomplikowanych poprawek.
Raspberry Pi jest bardzo zdolny, ale najlepiej byłoby zmienić podział pamięci na najmniejszą grafikę i większość pamięci RAM. Zapomnij o używaniu IDE i po prostu rób wszystko przez SSH. Jeśli naprawdę potrzebujesz więcej soku, umieść radiator na chipie BCM i podkręć go, gdy poczujesz się bezpiecznie. Inną opcją byłoby użycie wielu Pi jako klastra, aby pomóc w równoważeniu obciążenia. Możesz zacząć szukać tutaj informacji o klastrowaniu.
Ale czy naprawdę potrzebujesz użyć node.js?
Node.JS
był przeznaczony do użycia podczas uruchamiania (lub przewidywania), aby uzyskać setki i tysiące żądań, które wymagają przechowywania małych ilości danych w DB, buforowania lub ponownego odczytu przy minimalnym obciążeniu serwera. Więc sterujesz nim za pomocą JS na kliencie, ale Node.JS
tak naprawdę jest obsługiwany przez C / C ++. Co się stanie, jeśli potrzebujesz niestandardowego modułu lub określonej zmiany w kodzie podstawowym?
W aplikacji obsługującej strony node.js zwykle nie przewyższa apache na przykład w przypadku pojedynczych żądań. Nieblokująca funkcja node.js jest świetna, jeśli masz tysiące żądań na sekundę przez większość dnia, w tym miejscu apache blokuje się i ulega awarii.
Przykład z prawdziwego świata
Ebay - Podczas aukcji, gdy odliczasz ostatnie 30 sekund. Możesz mieć kilka osób, które energicznie odświeżały stronę i zwiększały stawki. To tutaj świeci node.js, ponieważ dzisiaj NIE musisz już odświeżać. Wynika to z tego, że JS często pobiera do node.js (300ms ~ 600ms) od wszystkich klientów i jest w stanie zapewnić „aukcję w prawdziwym życiu”. Ebay nie działa wyłącznie z node.js, ale na bardzo złożonych farmach serwerów z równoważeniem obciążenia.
Aby zbudować i zainstalować Node.js na Pi *:
Oczywiście nie ma nic złego w używaniu node.js zamiast innych i jak najlepiej nauczyć się węzła, jeśli nie na schludnym małym urządzeniu, takim jak Pi. Możesz więc samodzielnie skompilować kod w ten sposób.
$ 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)
aktualizacja: późniejsze wersje węzła (aktualna wersja to v0.8.18) można zbudować bez specjalnych kroków opisanych poniżej
następnie musimy powiedzieć kompilatorowi, aby użył armv6
architektury do kompilacji:
$ 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'],
},
Następnie skomentuj linie zaczynające się od znaku 157, aby usunąć części vfp3 i symulatora. Ponieważ jest to obiekt podobny do JSON, pamiętaj, aby usunąć przecinek z CPPDEFINES
linii!
'armeabi:softfp' : {
'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0']
# 'vfp3:on': {
# 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
# },
# 'simulator:none': {
# 'CCFLAGS': ['-mfloat-abi=softfp'],
# }
},
Następnie zwykły proces konfiguracji, wykonania, instalacji, NB. Musiałem ręcznie określić lokalizację libpath OpenSSL:
$ ./configure --openssl-libpath=/usr/lib/ssl
$ make (to compile node (This took 103 minutes!))
$ sudo make install
Właśnie dlatego powinieneś mieć działającą instalację Node.JS!
$ node -v should show you the version number
$ npm -v should show you the version of the Node Package Manager
* Referencje i oryginalny artykuł
Ale jak wskazano w innych odpowiedziach, możesz po prostu pobrać wstępnie skompilowany plik binarny, który po prostu zadziała.
Wnioski
Dobry kawałek Pi nie jest zły. Na Pi możesz uruchomić prawie wszystko - po prostu nie oczekuj wydajności na poziomie produkcyjnym.