Estou tentando configurar um servidor Nginx para conectar-se a um servidor HTTP Node.js. por meio de um soquete de domínio UNIX.
O arquivo de configuração do Nginx:
server {
listen 80;
location / {
proxy_pass http://unix:/tmp/app.socket:/;
}
}
(de acordo com http://wiki.nginx.org/HttpProxyModule#proxy_pass )
O script Node.js:
var http = require('http');
http.createServer(function(req, res) {
console.log('received request');
req.end('received request\n');
}).listen('/tmp/app.socket');
Agora, quando tento ligar
curl http://localhost/
Eu recebo apenas a página de erro 502 Bad Gateway em curl e nada no processo Node.js.
Estou fazendo algo errado?
editar:
Depois de tentar a solução do quanta, o erro deve estar relacionado à configuração do Nginx, pois o processo Node.js. estabelece a conexão com o soquete corretamente.
Eu também tentei configurar o Nginx desta maneira:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
Mas isso também não funcionou.
BTW eu estou usando o Nginx v1.0.6.
O seguinte está sendo gravado no log de erros no Nginx, quando eu uso a segunda configuração
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"