我正在尝试运行一个简单的节点应用程序。它在我的本地主机上运行得很好,但是当我试图让它在我的云服务器上运行时,它就不工作了。当我在正确的路径中执行“node app.js”时,我得到了console.log Express server started on port %s', server.address().port
,它还说它是端口3000(Express服务器在端口3000上启动)。当我将server.listen
更改为另一个端口时,它显示正确的端口。
现在,当我尝试通过我的域或通过我的IP(例如xx.xxx.xx.xx:3000)或我的域(my-domain.com:3000)运行它时,在这两种情况下都不起作用。我想我不太明白这个概念,我试图寻找十亿个不同的东西,但我找不到解决我的问题的方法。有人能告诉我,如果我还需要设置其他东西吗?
4条答案
按热度按时间pokxtpni1#
很可能您的代码正在工作,但您的服务器未配置为允许访问端口3000。
要确认,您可以尝试将应用更改为默认端口80,该端口很可能已启用。
搜索主机文档以查找“启用或打开端口”
yhxst69z2#
很可能您的云托管提供商没有打开端口进行访问。尝试通常打开的端口80。
xpcnnkqh3#
我也面临着同样的问题。在我的头撞了很多,检查所有打开/使用的端口并尝试各种其他东西之后,我终于发现,由于我使用的是AWS,我必须通过安全组部分为我的AWS EC2示例启用该端口。
我不得不在端口号为3000的安全组部分添加一个自定义TCP规则,我想在NodeJS服务器开始在端口3000上响应之后将其用于NodeJS服务器。
o0lyfsai4#
我在本地Windows Server 2016中也遇到了同样的问题。
我的问题是Windows防火墙阻止了对端口3000的访问。
检查您的防火墙是否阻止了对端口3000的访问,您可以按照以下步骤操作:
打开Windows Firewall with Advanced Security控制台。
1.在左窗格中,展开“入站规则”。在右窗格中,搜索允许连接到端口3000的规则。
1.如果您没有看到允许连接到端口3000的规则,则您的防火墙正在阻止对该端口的访问。
要创建允许连接到端口3000的规则,请执行以下步骤:
1.在Windows Firewall with Advanced Security控制台的左窗格中,展开Inbound Rules。
1.在右窗格中,右键单击“新建规则”,然后选择“端口”。
1.在“端口类型”对话框中,选择“TCP”并在“特定本地端口”框中输入3000,然后单击“下一步
1.在“操作”对话框中,选择“允许连接”。单击“下一步”。
1.在“配置文件”对话框中,选择要应用规则的配置文件,单击“下一步”。
1.在“名称”对话框中,输入规则的名称。
1.单击“完成”。
我知道这个问题是针对云服务的,但是上面的步骤可能会帮助那些在本地服务器上面临同样问题的人