ใช้ node.js กับ Apache HTTP server

ผมต้องการใช้ node.js กับ Apache HTTP server โดยที่ถ้ารับ request มาแล้วเป็นรูปภาพที่เป็น static file ก็ให้ Apache HTTP server เอามาแสดงผลเลย นอกจากนั้นก็ทำตัวเป็น reverse proxy ส่งต่อไปให้ node.js อีกที

สมมุติว่าเปิด node.js ไว้ที่ port 3000 แล้วกัน ที่ Apache HTTP server ผมต้องลง mod_rewrite และ mod_proxy_html มี set ค่าของ proxy นิดหน่อย ปกติใส่ในไฟล์ของ site ที่อยู่ใน /etc/apache2/site_enabled ถ้าใช้ Debian ตามนี้

  ProxyRequests off
  <proxy *>
     Order deny,allow
     Allow from all
  </proxy>

แล้วก็ใน .htaccess ผมใส่สิ่งนี้ไว้สำหรับ mod_rewrite อ่อแต่อย่าลืม AllowOveride ก่อนนะครับ

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/img
RewriteRule (.*)$ http://localhost:3000/$1 [P]

อันนี้ RewriteCond ก็จะบอกประมาณว่าอะไรที่อยู่ใน img ไม่ต้องทำ rewrite ส่วน url ที่เหลือก็ทำตัวเป็น proxy ( [P] ) ไปเรียกที่ node.js อีกที

ผมก็มั่ว ๆ นะครับพึ่งเคยใช้ก็อย่าเชื่อมาก ปกติใช้ nginx น่าจะง่ายกว่า แต่ในกรณีที่มันไม่มีก็นะ …

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s