如何将节点服务器从本地主机部署到Internet

时间:2020-05-14 08:10:43

标签: javascript java node.js web-applications

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

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

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

如何使我在ubuntu机器上运行的后端服务器可用于世界各地的websocket连接?

由于我是该领域的新手,所以请提供详细的说明。

3 个答案:

答案 0 :(得分:0)

有不同的npm模块可用,以便提供域名并最终提供从外部访问本地服务器的功能。话虽如此,如果服务器停止运行,那么您可能必须再次生成一个新域名并在整个域名之间共享。也有其他方法可以缓解这种情况。

但是我从您的问题中了解到的是this is the answer you are looking for.。希望这会有所帮助。

答案 1 :(得分:0)

要公开在计算机上本地运行的服务器,您需要允许在正确的端口上访问网络,这意味着让路由器知道在接收到特定端口的网络流量时该怎么做。默认情况下。

尽管对于大型项目而言,这可能不是最安全的解决方案,但通常这是托管大多数服务器(包括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 ,而不是IP地址。 strong>。

结论

这不是非常深入的指南,只是将本地服务器公开给外界的必要步骤的简要介绍,因此对于每个步骤都需要进行大量研究。如果您需要任何进一步的帮助或想要指出一些问题,请随时编辑答案或在下面留下评论。

答案 2 :(得分:0)

您可以做的一件事是不需要从路由器进行端口转发 相同的方式

尝试使用ngrok(https://ngrok.com/),它不需要端口转发,下载ngrok并运行ngrok.exe tcp 5001 5001是要连接的端口,tcp是协议(http,tcp,..)进行连接在线使用“转发”,它类似于4.tcp.ngrok.io:4869,它将转发到本地主机端口5001

注意:您可以在没有帐户的情况下使用它,但是它将每7小时过期一次,查看使用的帐户,其内容为https://dashboard.ngrok.com/auth/your-authtoken(创建帐户后)