Я намагаюся налаштувати сервер Nginx для підключення до HTTP-сервера Node.js через сокет домену 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.
Я щось роблю не так?
редагувати:
Після спроби рішення кванту помилка повинна мати відношення до конфігурації Nginx, оскільки процес Node.js встановлює з'єднання з сокетом правильно.
Я також спробував налаштувати Nginx таким чином:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
Але і це не спрацювало.
До речі, я використовую 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"