nodejs无法获取/

时间:2019-02-05 22:50:45

标签: node.js nginx socket.io iptables

我有一个使用socket.io的nodejs应用程序,该应用程序在端口3000上运行,并试图将nginx设置为其反向代理。我也有一些iptables,我认为它们可能通过不允许连接到nodejs来干扰我的应用程序,但是我无法弄清楚问题出在哪里。当我从另一台计算机连接到我的应用程序时,出现“无法获取/。”

我以为iptables中的第一行允许回送(由于存在同一台机器,这将允许从nginx到nodjs的连接,但也许我错过了吗?如何更改iptables确实允许nginx连接到我的应用程序?

我的iptables过滤器是:

    Chain INPUT (policy DROP)
    target     prot opt source               destination         
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:20
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53

    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination 

我的nginx配置文件是:

    upstream socket_nodes{
            server 127.0.0.1:3000;
    }
    server {
            listen 80;

            server_name mywebsite.com www.mywebsite.com;

            location / {
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection 'upgrade';
                    proxy_http_version 1.1;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $host;
                    proxy_pass http://socket_nodes;
            }
    }

然后在我的nodejs index.js中,我有这个供我收听:

    var port = 3000;
    server.listen(port, function(){
            console.log('listening on *:' + port);
    });

0 个答案:

没有答案