我尝试在本地计算机上为我的Node(Express)项目设置虚拟主机。但我无法弄清楚如何避免端口号
这是我在/ etc / hosts文件中输入的内容。
192.168.151.207 www.potato.com
192.168.151.207 www.tomato.com
我可以通过www.potato.com:3000访问网站,但我希望它只是www.potato.com。
我最近几天谷歌搜索,但所有解决方案都说使用Nginx进行反向代理。我还读过一些地方,如果我使用Nginx,我就不能使用Socket。套接字是我必须在项目的下一阶段使用的东西。
衷心感谢任何帮助。
答案 0 :(得分:1)
你试过virtualhost npm包吗?
让您的HTTP服务器非常简单地识别主机名。
您为每个服务器名称定义处理程序,并返回 要传递给HTTP服务器的最终处理程序。
与Express合作正常。
如果您希望使用不同的应用程序为每个虚拟主机提供服务(因为它们无法侦听同一个端口),您只需要使用nginx或任何其他代理解决方案(还有nodejs模块也可以与您的应用程序集成)。
答案 1 :(得分:0)
这是我的问题的答案。我只使用Nginx并设置反向代理。 首先在我的/ etc / hosts文件中添加我想要使用的域。
127.0.0.1 tomato.com
这意味着每当我打开这个URL" tomato.com"浏览器将更改为127.0.0.1。但是我的Express服务器运行在127.0.0.1:3000上。现在我们需要将127.0.0.1指向127.0.0.1:3000。使用Nginx我们可以配置它。下面给出的代码行做到了这一点。 /etc/nginx/sites-available/tomato.conf
server_name tomato.com;
location / {
proxy_pass "http://127.0.0.1:3000/"
}

有关详细信息,请查看Digitalocean
中的这篇文章