为什么我可以通过端口 80 访问 Nodejs 服务器,即使它在端口 3000 上运行并且 nginx 已停止

为什么我可以通过端口 80 访问 Nodejs 服务器,即使它在端口 3000 上运行并且 nginx 已停止

我不太熟悉配置 Web 服务器。我在运行 Ubuntu 18.04 的 AWS EC2 实例上的端口 3000 上有一个 Node Express 服务器。

在 AWS 管理控制台中,我有一条允许访问端口 3000 的规则,这样我就可以访问mydomain.com:3000。没问题 - 这是有道理的。

为了能够通过 进行访问mydomain.com,我安装了 Nginx 并使用 proxy_pass 进行了非常简单的配置,将端口 80 的请求传递到端口 3000:

server {

        listen 80 default_server;
        listen [::]:80 default_server;

        server_name mydomain.com www.mydomain.com;

       location / {
               proxy_set_header X-Real-IP      $remote_addr;
               proxy_set_header Host           $http_host;
               proxy_pass      http://127.0.0.1:3000;
       }

}

但是,当我停止 Nginx 时(我这样做是作为移动到 https 的无关尝试的一部分……如果您需要的话,可以了解更多详细信息),我仍然可以访问mydomain.com

不知何故,尽管流量进入端口 80,但仍然可以访问端口 3000 上的节点快速服务器。并且 Nginx 没有运行。

怎么了?

我检查了一下sudo iptables -L,这似乎不是罪魁祸首:

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

相关内容