웹 서버
Node.JS Pi에서 웹 서버 교체로 사용할 수 있으며 독립형 또는 단일 페이지 웹 응용 프로그램을 쉽게 만들 수 있습니다.
그러나 대부분의 실제 응용 프로그램에서는 정보를 위해 현대식 nginx, 경량 lighttpd또는 뭉툭하지만 완전한 기능을 갖춘 서버를 사용하는 것이 좋습니다 apache2! 그런 다음 사이트를 보완하기 위해 node.js 스크립트를 작성하십시오.
분명히 가능성은 무한하며 모든 것이 달성하고자하는 것에 달려 있습니다.
라즈베리 파이?
Raspberry Pi는 모든 웹 서버를 실행할 수 있습니다. 또한 심각한 합병증없이 노드를 실행할 수 있으며 복잡한 조정없이 실제로 빠릅니다.
Raspberry Pi는 성능이 뛰어나지 만 메모리 분할 을 최소 그래픽 및 대부분의 RAM 으로 전환하는 것이 가장 좋습니다 . IDE 사용을 잊고 SSH를 통해 모든 것을 수행하십시오. 주스가 더 필요한 경우 BCM 칩에 방열판을 놓고 안전하다고 느낄 때 오버 클로킹 하십시오. 다른 옵션은로드 밸런싱을 돕기 위해 여러 Pi를 클러스터로 사용하는 것입니다. 클러스터링에 대해 여기에서 파기를 시작할 수 있습니다.
그러나 정말로 node.js를 사용해야합니까?
Node.JS최소한의 서버 오버 헤드로 작은 덩어리의 데이터를 DB에 저장하거나 캐시하거나 다시 읽어야하는 수백 수천 개의 요청을 받기 위해 시작 (또는 예상) 할 때 사용되었습니다. 따라서 클라이언트에서 JS를 사용하여 Node.JS구동 하지만 실제로는 C / C ++에 의해 구동됩니다. 사용자 정의 모듈이나 기본 코드의 특정 변경이 필요한 경우 어떻게됩니까?
웹 페이지를 제공하는 응용 프로그램에서 node.js는 일반적으로 단일 요청에서 아파치를 능가하지 않습니다. node.js의 비 차단 기능은 하루 종일 초당 수천 건의 요청이있는 경우 유용합니다. 이곳에서 아파치가 차단되고 충돌합니다.
실제 예
이베이-지난 30 초의 카운트 다운이있는 경매 중. 페이지를 활발하게 새로 고침하고 입찰가를 높이는 데 사용했던 사람이 여러 명있을 수 있습니다. 오늘은 더 이상 새로 고칠 필요가 없기 때문에 node.js가 빛나는 곳입니다. JS는 모든 클라이언트에서 node.js로 아주 자주 (300ms ~ 600ms) 아약스를 제공하고 "실제 경매"경험을 제공 할 수 있기 때문입니다. 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'],
# }
},
그런 다음 일반적인 구성, 설치, 설치 프로세스, NB 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-just에서 거의 모든 것을 실행할 수 있습니다. 프로덕션 수준의 성능을 기대하지 마십시오.