![](/img/trans.png)
[英]How can I access my nodejs web server from my local computer using the server domain name?
[英]My web application does not work when trying to access it by the domain name, but it works if I use the server's IP followed by a port
免责声明:这是我第一次同时使用 node.js、Web 服务器和 Web 应用程序。
嘿大家,
我已经将我的第一个 node.js 应用程序上传到我的 DigitalOcean droplet (vps)。 使用 Putty,我设法访问了我的服务器,并使用终端下载了NPM
、 Node
、 MongoDB
、 Python
和最后的Nodemon
。
我使用npm
安装了所有依赖项,并且能够使用“nodemon app.js”启动我的服务器。 然后,我使用 DigitalOcean 为我的服务器提供的 IP 地址成功连接到我的网络应用程序。
但是,url 自动填充 IP 以将 :3000 作为端口,例如: http://123.45.678.999:3000
。 然后,我从 GoDaddy 购买了一个域名,并将名称服务器设置为ns1.digitalocean.com
、 ns2.digitalocean.com
和ns3.digitalocean.com
。 在数字海洋上,我配置了网络/DNS 设置以将我的新域名链接到我服务器的 IP。
但是,当我导航到我的域名时,我的网页只是说:
此页面无效,域未发送任何数据,ERR_EMPTY_RESPONSE。
我仍然可以使用 ip:port 连接到我的网络应用程序。
我在这里错过了什么吗? 我看到的每个指南/教程,人们只能使用 IP 进行连接,为什么我的需要端口? 任何想法为什么域不起作用? 任何帮助将不胜感激...
提前致谢!
当您在没有任何端口的情况下在浏览器中输入 IP 时,如果您使用 http,则假定您输入了端口 80。 因此,当浏览器中未明确写入端口时,将使用端口 80。 我认为您应该尝试在端口 80(可能来自 root 用户)上运行您的节点应用程序。
建议为您的 nodejs 应用程序使用像 nginx 这样的反向代理:
这也将使之后使用 letencrypt 设置 https 变得更容易: https ://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.