我有一个在端口 3000 上运行的 nodejs 应用程序。我想在 Linux 环境中托管它。所以我在里面安装了nodejs。它工作正常,但我应该每次都指定端口。
示例:mydomain.net:3000/url_i_want
,
我怎样才能避免这种情况。而且当我这样运行我的应用程序时,所有用户都相互连接。如果其中一个断开所有其他用户。如果其中一个更改页面,则所有其他页面都在更改页面。是因为他们都在听同一个端口 3000
吗?搜索了一下,发现可能跟PM2
和Nginx
有关。是解决方案吗?
最佳答案
每当您在不指定端口号的情况下加载 URL 时,浏览器默认为 80,因为 80 是 HTTP 的默认端口号。
因此,如果您加载 http://stackoverflow.com/questions
,浏览器会将其“转换”为 http://stackoverflow.com:80/questions
。
如果您不希望指定端口号来访问您的网站,您的应用程序应该监听端口 80,而不是 3000。
但是,不建议 Node 应用程序直接监听端口 80(尽管它们完全可以)。
你可以做的是使用一个前置代理,例如 nginx
,它接受到主机端口 80 的连接,然后将请求重定向到 localhost:3000
,您的应用正在收听的位置。
最好一次问一个问题。
关于您的第二个问题,除非您使用某种“远程同步”框架,否则这种行为是不可预料的。我建议针对该问题发布一个单独的问题,并提供更多详细信息。
关于node.js - 托管没有端口的 Nodejs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41282408/