如何在不使用ngrok的情况下创建本地服务器?

时间:2018-10-01 06:22:48

标签: node.js chatbot ngrok localserver

我一直在使用NGRok作为聊天机器人的服务器。所以我想使用我的静态IP和主机创建一个本地服务器,并在其上创建聊天机器人。有人知道该怎么做吗?

1 个答案:

答案 0 :(得分:0)

这取决于您的聊天机器人的具体情况。我认为它的行为类似于HTTP服务器。

您必须确保符合以下条件:

  • 确保您的服务器也在监听外部接口,而不仅仅是本地接口。例如,在Linux上,您可以使用netstat -atulpen进行检查。如果您列出的进程的状态为LISTEN,本地地址为:::<PORT>0.0.0.0:<PORT>,那么它将在所有接口上侦听。如果本地地址是您的外部IP地址,也可以!如果您在此处看到其他内容,请检查代码,以了解是否已将端口分配给服务器。在这里,您通常还可以设置要监听的主机,可以将其设置为未指定的地址(::0.0.0.0)来监听所有接口。
  • 确保如果使用防火墙,则它不会阻止对服务器的外部访问。这取决于您的设置,我也建议您查看防火墙软件的手册以了解如何执行此操作。在Linux上,您通常以ufw作为iptables的前端或直接使用后者。
  • 确保您的静态IP可公开访问(如果要从公共Internet访问服务器)。许多ISP不为客户提供公共IPv4地址,而是使用NAT为您提供对IPv4 Internet的访问。为了验证这一点,您可以使用诸如ifconfig.co之类的网站来查看您的公共IP地址,如果该地址与您的静态IP地址匹配,它应该可以工作。如果IP地址不匹配,则您的家庭网络中可能只有一个静态IP,而没有一个公共IP路由到/来自Internet。如果ifconfig.co所示的地址与路由器的IP地址匹配,则可以在路由器中启用端口转发到运行服务器的主机。但是,这在很大程度上取决于网络的设置方式。

如果所有这些都适用,则您应该能够使用您的公共IP和指定的端口访问服务器。但是您可能要考虑使用HTTPS而不是纯HTTP来保护连接。根据设置的具体情况,您应该能够在线找到许多有关如何完成此操作的指南。只是一些指针:

  • 您需要主机的TLS密钥和证书。您必须自己生成的密钥和证书可以是自签名的,也可以是由CA颁发的,例如lets-encrypt。
  • 然后,您要么必须修改应用程序以使用HTTP而不是HTTP,要么将应用程序更改为仅侦听本地连接并将其放置在为您执行SSL终止的反向代理之后。为此,nginx和apache都是有效的选项,Internet上的各种资源都有关于如何设置它们的信息。