javascript - 如何从本地主机将我的 Node 服务器部署到互联网

标签 javascript java node.js web-applications

我有一台 ubuntu18 机器,我在其中开发了一个 Web 应用程序。

Web 应用程序有一个前端(HTML、CSS 和 Javascript)和一个后端(Nodejs、python、java)。前端和后端通过websocket进行通信。后端由两台服务器组成,一台运行在 Nodejs 上,另一台运行在 java 上。

当我在本地主机上测试应用程序时,一切正常。我想使用我的公共(public) IP 地址让互联网上的任何人访问此应用程序。我现在没有域名。

如何使我的 ubuntu 计算机上运行的后端服务器可用于来自世界任何地方的 Websocket 连接?

感谢详细的解释,因为我是这个领域的新手。

最佳答案

要公开在您的计算机上本地运行的服务器,您需要允许在正确的端口上访问您的网络,这意味着让您的路由器知道当它接收到某个端口的网络流量时要做什么,该端口很可能已关闭默认情况下。

虽然对于大型项目来说这可能不是最安全的解决方案,但这通常是您托管大多数服务器的方式,包括 HTTP 服务器、游戏服务器等,为了实现这一点,您必须转发你的路由器。

端口转发

为了让您的路由器知道在收到定向到某个端口的流量时如何采取行动,您必须通过网关访问其配置。建议在线查找您的特定路由器型号以获得快速简便的指南,但通常情况如下:

  1. 打开浏览器并导航至路由器网关以访问配置页面(通常为 192.168.1.1)。
  2. 使用管理员凭据登录。如果您从未这样做过,它们可能是默认凭据,请通过谷歌搜索路由器的型号来查找。 This list may help you .
  3. 导航至端口转发部分,通常位于高级配置或防火墙部分下方。
  4. 您想要根据服务器监听的端口和计算机的本地 IPv4 地址设置新的转发规则,例如,如果您的服务器监听端口 1337 和您的本地 IP地址是 192.168.1.120,您应该同时设置 TCP 和 UDP 规则,这本质上让您的路由器知道传入该特定端口的任何流量都将被重定向到您的计算机(此步骤可能会有所不同)很多取决于您的路由器制造商)
  5. 最后但并非最不重要的一点是,您的本地计算机应在静态 IP (192.168.1.XXX) 上运行,以确保它不会自动更改。要在 Ubuntu/其他发行版中执行此操作,请参阅 this guide .

对路由器进行端口转发后,服务器应该可以通过您的外部 IP 地址( Use this to easily find out what your external IP is 和您定义的端口,例如:264.186.45.7:1337

自定义主机名

要使用自定义 DNS 解析器为您的服务器提供自定义 URL,您可以使用 noip 等免费工具。 ,它为您的服务器提供了很好的免费主机名选择。您所需要的只是设置一个主机名并下载其客户端,该客户端会自动将所有服务器的流量重新路由到该外部 URL,因此您可能拥有一个不错的主机名,例如 awesome-server.ddns.net.

结论

这不是一个非常深入的指南,只是快速概述将本地服务器暴露给外界所需的步骤,因此每个步骤都需要进行一些研究。如果您需要任何进一步的帮助或想要指出一些问题,请随时编辑答案或在下面发表评论。

关于javascript - 如何从本地主机将我的 Node 服务器部署到互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61792384/

相关文章:

javascript - 第二次+迭代后无返回值

javascript - 在 Ruby on Rails 应用程序中使用 javascript 插件

java - 从其他 fragment 回到上一个 fragment

java - 如何从 IIOMetadata 获取图像压缩质量?

javascript - 使用连接键将 JS 子对象合并为 JS 对象

node.js - 将一个新对象插入 Mongoose 的子文档数组字段中

php - 从弹出页面读取发布数据

java - 目标窗口在 Selenium 中关闭

json - 有没有办法在express(node.js)中设置中间件以在每个路由中返回特定值?

javascript - float 为什么线又回到左上角?