托管不带端口的Nodejs应用程序

Mer*_*yam 3 hosting node.js express reactjs

我有一个在端口3000上运行的nodejs应用程序。我想将其托管在Linux环境中。因此,我在其中安装了nodejs。它工作正常,但每次都应指定端口。

例如:mydomain.net:3000/url_i_want

我如何避免这种情况。并且在运行我的应用程序时,所有用户都是相互联系的。如果其中之一断开所有其他用户的连接。如果其中之一更改页面,则其他所有页面都将更改。是因为他们都在监听同一个端口3000吗?我搜索后发现它可能与PM2和有关Nginx。解决方案吗?

小智 6

每当您在未指定端口号的情况下加载URL时,浏览器默认为80,因为80是HTTP的默认端口号。

因此,如果加载http://stackoverflow.com/questions,浏览器会将其“转换”为http://stackoverflow.com:80/questions

如果您不希望指定端口号来访问您的网站,则您的应用应在端口80上监听,而不是在3000上监听。

但是,不建议Node应用程序直接在端口80上侦听(尽管它们可以很好地侦听)。

您可以做的是使用前端代理(例如)nginx,该代理接受与主机端口80的连接,然后将请求重定向到localhost:3000您的应用正在监听的。

最好一次问一个问题。

至于第二个问题,除非您使用某种“远程同步”框架,否则这种行为是意外的。我建议针对该问题发布一个单独的问题,其中包含更多详细信息。