node.js - 托管没有端口的 Nodejs 应用程序

标签 node.js reactjs express hosting

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

示例:mydomain.net:3000/url_i_want,

我怎样才能避免这种情况。而且当我这样运行我的应用程序时,所有用户都相互连接。如果其中一个断开所有其他用户。如果其中一个更改页面,则所有其他页面都在更改页面。是因为他们都在听同一个端口 3000 吗?搜索了一下,发现可能跟PM2Nginx有关。是解决方案吗?

最佳答案

每当您在不指定端口号的情况下加载 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/

相关文章:

node.js - 将对象从中间件传递到快速路由

node.js - Uglifyjs Node js

javascript - 为什么 Safari 会复制 GET 请求而 Chrome 不会?

reactjs - 长坐标数组中的 Redux 性能。我需要获取一个巨大数组上的所有坐标以在 map 中显示

javascript - 如何在 javascript 文件中使用本地 API?

node.js - 读取复选框值 Node JS + Express + Jade

javascript - 从 http.get() 响应中获取 url

javascript - 使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行

reactjs - React Tabs onClick 获取所选选项卡的索引

javascript - 使用 React js Modal 的动态内容