Node + Nginx反向代理永远不会工作

时间:2014-03-24 21:45:41

标签: node.js nginx

我花了很多时间试图完成这项工作,它正在缩短实际的开发时间。我正在尝试在我的网站example.comexample2.com上设置两个域,但在浏览器中导航到域时最多会产生502。

我从朋友那里得到的etc/nginx/nginx.conf

user root;
worker_processes 4;


events {
        worker_connections 768;
}

http {

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        server_names_hash_bucket_size 64;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;


        gzip on;
        gzip_disable "msie6";

        include /etc/nginx/sites-enabled/*;
}

我也是朋友的etc/nginx/sites-available/sites

server {
    server_name example.com;
    # proxy pass to nodejs
    location / {
        proxy_pass    http://127.0.0.1:9001/;
    }
}
server {
    server_name example2.com;
    # proxy pass to nodejs
    location / {
        proxy_pass    http://127.0.0.1:8000/;
    }
}

我一直在圈子里工作,尝试了很多不同的配置,但都失败了,这个特定的配置会导致两个站点出现网关错误502.

我从来没有能够让这个工作,我不知道为什么,第二组眼睛会非常有帮助。

1 个答案:

答案 0 :(得分:1)

nginx配置中没有任何错误。如果nginx尝试转发连接的节点服务器实际上没有侦听您在配置中指定的端口,那么您将获得502状态代码。

要验证它是否正确侦听,您可以使用任何可以连接到端口的工具来执行HTTP GET。所以,例如:

$ curl http://127.0.0.1:9001/

或者wget也可以用于此。如果连接被拒绝,则可能是您的节点服务器根本没有运行或配置为侦听其他端口。