Próbuję skonfigurować serwer Nginx, aby łączył się z serwerem HTTP Node.js za pośrednictwem gniazda domeny UNIX.
Plik konfiguracyjny Nginx:
server {
listen 80;
location / {
proxy_pass http://unix:/tmp/app.socket:/;
}
}
(zgodnie z http://wiki.nginx.org/HttpProxyModule#proxy_pass )
Skrypt Node.js:
var http = require('http');
http.createServer(function(req, res) {
console.log('received request');
req.end('received request\n');
}).listen('/tmp/app.socket');
Teraz, kiedy próbuję zadzwonić
curl http://localhost/
Dostaję tylko stronę błędu 502 Bad Gateway w curl i nic w procesie Node.js.
czy robię coś źle?
edytować:
Po wypróbowaniu rozwiązania kwanty błąd musi mieć związek z konfiguracją Nginx, ponieważ proces Node.js prawidłowo nawiązuje połączenie z gniazdem.
Próbowałem również skonfigurować Nginx w ten sposób:
upstream myapp {
server unix:/tmp/app.socket;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
Ale to też nie działało.
BTW Używam Nginx v1.0.6.
Następujące informacje są zapisywane w dzienniku błędów w Nginx, gdy używam drugiej konfiguracji
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"