Estou tentando configurar um servidor Nginx para se conectar 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 o link )
O script do 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 só obtenho a página de erro 502 Bad Gateway no curl e nada no processo Node.js.
Estou fazendo algo errado?
edit:
Depois de tentar a solução do quanta, o erro deve ter a ver com a configuração do Nginx, já que o processo do Node.js estabelece a conexão ao socket corretamente.
Eu também tentei configurar o Nginx dessa maneira:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
Mas isso também não funcionou.
Por que 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"