Tôi đang cố gắng định cấu hình máy chủ Nginx để kết nối với máy chủ HTTP Node.js thông qua ổ cắm tên miền UNIX.
Tệp cấu hình Nginx:
server {
listen 80;
location / {
proxy_pass http://unix:/tmp/app.socket:/;
}
}
(theo http://wiki.nginx.org/HttpProxyModule#proxy_pass )
Kịch bản Node.js:
var http = require('http');
http.createServer(function(req, res) {
console.log('received request');
req.end('received request\n');
}).listen('/tmp/app.socket');
Bây giờ, khi tôi cố gắng gọi
curl http://localhost/
Tôi chỉ nhận được trang lỗi 502 Bad Gateway trong curl và không có gì trong quy trình Node.js.
Tôi có làm điều gì sai?
biên tập:
Sau khi thử giải pháp của quanta, lỗi phải xảy ra với cấu hình Nginx, vì quy trình Node.js thiết lập kết nối với ổ cắm một cách chính xác.
Tôi cũng đã cố gắng định cấu hình Nginx theo cách này:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
Nhưng điều này cũng không hoạt động.
BTW Tôi đang sử dụng Nginx v1.0.6.
Sau đây là ghi vào nhật ký lỗi trong Nginx, khi tôi sử dụng cấu hình thứ hai
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"