我有一个在 Linux 服务器(nginx)上运行的 node.js 应用程序。
xxx.xxx.xxx.xxx:3000/api
当我尝试从手机或家里的电脑连接时,我可以。但当我尝试从公司网络连接时,我无法连接。我也可以从任何一个获得 80 端口。
为什么我打不开3000端口?
答案1
您的公司很可能有非常严格的防火墙。它们会从不允许任何内容的状态开始,然后添加所需的内容。
这些将是用于 http(Web 浏览)的端口 80、用于 https 的端口 443 以及您需要的任何其他东西。
您可以设置代理,以便用户连接端口 80,但您的 node.js 应用程序仍将在 3000 上接收。
详细链接在这里:这里
TLDR 是:
- 打开你的配置(centOS /etc/nginx/conf.d 或 Ubuntu /etc/nginx/sites-enabled)
- 进行以下更改(根据需要进行更改以满足您的需要)
重启 nginx 服务
server { listen 80; server_name your-domain-name.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:3000; } }