웹 서버
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에서 거의 모든 것을 실행할 수 있습니다. 프로덕션 수준의 성능을 기대하지 마십시오.