Estoy tratando de configurar un servidor Nginx para conectarse a un servidor HTTP Node.js a través de un socket de dominio UNIX.
El archivo de configuración de Nginx:
server {
listen 80;
location / {
proxy_pass http://unix:/tmp/app.socket:/;
}
}
(de acuerdo con http://wiki.nginx.org/HttpProxyModule#proxy_pass )
El 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');
Ahora, cuando trato de llamar
curl http://localhost/
Solo obtengo la página de error 502 Bad Gateway en curl y nada en el proceso Node.js.
¿Estoy haciendo algo mal?
editar:
Después de probar la solución de quanta, el error debe tener que ver con la configuración de Nginx, ya que el proceso Node.js establece la conexión al socket correctamente.
También intenté configurar Nginx de esta manera:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
Pero esto tampoco funcionó.
Por cierto, estoy usando Nginx v1.0.6.
Lo siguiente se escribe en el registro de errores en Nginx, cuando uso la segunda configuración
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"