ฉันกำลังพยายามกำหนดค่าเซิร์ฟเวอร์ Nginx เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Node.js HTTP ผ่านซ็อกเก็ตโดเมน UNIX
ไฟล์การกำหนดค่า Nginx:
server {
listen 80;
location / {
proxy_pass http://unix:/tmp/app.socket:/;
}
}
(ตามhttp://wiki.nginx.org/HttpProxyModule#proxy_pass )
สคริปต์ Node.js:
var http = require('http');
http.createServer(function(req, res) {
console.log('received request');
req.end('received request\n');
}).listen('/tmp/app.socket');
ตอนนี้เมื่อฉันพยายามโทร
curl http://localhost/
ฉันได้รับหน้าข้อผิดพลาด 502 Bad Gateway เป็นแบบม้วนเท่านั้นและไม่มีสิ่งใดในกระบวนการ Node.js
ฉันกำลังทำอะไรผิดหรือเปล่า?
แก้ไข:
หลังจากลองวิธีแก้ปัญหาของ quanta ความผิดพลาดจะต้องเกี่ยวข้องกับการกำหนดค่า Nginx เนื่องจากกระบวนการ Node.js สร้างการเชื่อมต่อกับซ็อกเก็ตอย่างถูกต้อง
ฉันยังพยายามกำหนดค่า Nginx ด้วยวิธีนี้:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
แต่มันก็ไม่ได้ผลเหมือนกัน
BTW ฉันใช้ Nginx v1.0.6
ต่อไปนี้จะถูกเขียนไปยังบันทึกข้อผิดพลาดใน Nginx เมื่อฉันใช้การกำหนดค่าที่สอง
2011/09/28 13:33:47 [crit] 1849#0: *5 connect() to unix:/tmp/app.socket failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://unix:/tmp/app.socket:/", host: "localhost:80"