我不太熟悉配置 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