เว็บเซิร์ฟเวอร์
Node.JS
สามารถใช้แทนเว็บเซิร์ฟเวอร์ใน Pi และคุณสามารถสร้างแอปพลิเคชันแบบสแตนด์อโลนหรือหน้าเว็บเดียวได้อย่างง่ายดาย
แต่สำหรับข้อมูลของคุณในแอปพลิเคชั่นส่วนใหญ่ในโลกแห่งความเป็นจริงขอแนะนำให้ใช้เซิร์ฟเวอร์เช่นความทันสมัยnginx
น้ำหนักเบาlighttpd
หรือความหนาแต่เต็มไปด้วยคุณสมบัติapache2
! และจากนั้นสคริปต์ node.js เพื่อเสริมเว็บไซต์
เห็นได้ชัดว่าความเป็นไปได้ไม่มีที่สิ้นสุดและทุกอย่างขึ้นอยู่กับสิ่งที่คุณต้องการบรรลุ
ราสเบอร์รี่ Pi?
Raspberry Pi สามารถเรียกใช้เว็บเซิร์ฟเวอร์เหล่านั้นได้ นอกจากนี้ยังสามารถเรียกใช้ Node ได้โดยไม่ต้องมีปัญหาแทรกซ้อนใด ๆ และรวดเร็วมากโดยไม่ต้องมีการปรับแต่งที่ซับซ้อน
Raspberry Pi นั้นมีความสามารถสูง แต่ที่ดีที่สุดคือการเปลี่ยนหน่วยความจำให้เหลือน้อยที่สุดกราฟิกและ RAM ส่วนใหญ่ ลืมการใช้ IDE และทำทุกอย่างผ่าน SSH หากคุณต้องการน้ำผลไม้เพิ่มขึ้นจริงๆให้วางแผ่นระบายความร้อนบนชิป BCM และโอเวอร์คล็อกในขณะที่คุณรู้สึกปลอดภัย ตัวเลือกอื่นจะใช้หลาย Pi เป็นคลัสเตอร์เพื่อช่วยในการสมดุลภาระ คุณสามารถเริ่มขุดแถวนี้เกี่ยวกับการรวมกลุ่ม
แต่คุณจำเป็นต้องใช้ node.js จริง ๆ หรือไม่
Node.JS
มีวัตถุประสงค์เพื่อใช้เมื่อคุณเริ่ม (หรือคาดการณ์ไว้) เพื่อรับคำขอนับแสนที่ต้องใช้ข้อมูลขนาดเล็กเพื่อจัดเก็บในฐานข้อมูลแคชหรืออ่านกลับด้วยค่าใช้จ่ายของเซิร์ฟเวอร์น้อยที่สุด ดังนั้นคุณขับมันโดยใช้ JS บนไคลเอนต์ แต่Node.JS
ถูกขับเคลื่อนด้วย C / C ++ ดังนั้นจะเกิดอะไรขึ้นหากคุณต้องการโมดูลที่กำหนดเองหรือการเปลี่ยนแปลงเฉพาะในรหัสฐาน?
ในแอปพลิเคชันที่ให้บริการหน้าเว็บ node.js มักจะไม่ได้มีประสิทธิภาพดีกว่า apache ตัวอย่างเช่นในคำขอเดียว คุณลักษณะการไม่บล็อกของ node.js นั้นยอดเยี่ยมถ้าคุณมีคำขอนับพันต่อวินาทีเป็นเวลาเกือบทั้งวันนี่คือที่ apache จะบล็อกและพัง
ตัวอย่างโลกแห่งความจริง
Ebay - ในระหว่างการประมูลเมื่อคุณมีการนับถอยหลังใน 30 วินาทีที่ผ่านมา คุณสามารถมีหลายคนที่เคยรีเฟรชหน้าแรงและเพิ่มราคาเสนอ นี่คือที่ node.js ส่องสว่างเพราะวันนี้คุณไม่จำเป็นต้องรีเฟรชอีกต่อไป นั่นเป็นเพราะ JS ajaxes to node.js บ่อยครั้งมาก (300ms ~ 600ms) จากไคลเอนต์ทั้งหมดและสามารถให้ประสบการณ์ "การประมูลในชีวิตจริง" Ebay ไม่ได้ทำงานเพียงอย่างเดียวจาก node.js แต่ในเซิร์ฟเวอร์เซิร์ฟเวอร์ load balance ที่ซับซ้อนมาก
ในการสร้างและติดตั้ง Node.js บน Pi *:
เห็นได้ชัดว่าไม่มีอะไรผิดปกติกับการใช้ 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- เพียงอย่าคาดหวังประสิทธิภาพระดับการผลิต