无法让 nginx 监听非标准端口(3000、35729)

无法让 nginx 监听非标准端口(3000、35729)

这是在 VPS 上运行的 Ubuntu 14.04 的全新安装。

例如下面的方法可以工作:

server {
    listen 8080 default_server;
    root /var/www;

    location / {
        try_files $uri $uri/ =404;
    }
}

server {
    listen 80 default_server;
    root /var/www;

    location / {
        try_files $uri $uri/ =404;
    }
}

当我访问该页面时它将是我的index.html

但如果我尝试让 nginx 监听另一个端口(35729):

server {
    listen 35729 default_server;
    root /var/www;

    location / {
        try_files $uri $uri/ =404;
    }
}

或者甚至可能稍微更常用一点(例如 nodejs 服务器有 3000 个)

我得到的只是一条错误消息,提示该网页不可用

但是,查看 netstat 发现 nginx 正在监听该端口:

tcp        0      0 0.0.0.0:35729      0.0.0.0:*          LISTEN    15349/nginx -g daem

并且 iptables 看起来像这样(这意味着没有防火墙对吗?)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

sudo ufw status verbose产生

Status: inactive

这是怎么回事?

答案1

跑步:

# On Linux
sudo netstat -lntp 

# On FreeBSD
netstat -a | grep 'LISTEN'

# On Windows
netstat -bnp TCP -p TCPv6

并检查正在nginx监听的端口

更改配置文件后不要忘记

sudo service nginx restart

然后再次检查netstat,哪个端口nginx正在监听

如果看起来正确,请检查您的防火墙,可能防火墙上只戳了特定的端口。

Ctrl+F5在浏览器中刷新 缓存

PS 如果您下次提问时提供您的操作系统,那么发现问题会容易得多

答案2

我遇到了类似的问题,结果发现我必须在供应商的网站上在我的服务器(Ubuntu 12.04)的客户面板上打开特定端口。

相关内容