允许远程服务器访问localhost上的API服务器

时间:2018-05-28 11:56:28

标签: javascript node.js express nginx

我试图用我的Raspberry Pi做一些家庭自动化。 现在我已经设置了一个Node + Express API服务器(地址Sub CollectionTest() Dim coll As New Collection Dim rng1 As Range Dim rng2 As Range 'Set rng1 = someNamedRange 'gives an error! Set rng2 = Range("someNamedRange") 'here you can see, how to add named ranges to a collection - you have two valid ways, through a variables or directly coll.Add someNamedRange coll.Add rng2 coll.Add Range("someNamedRange") 'MsgBox coll(1).Address 'would give an error: object required 'both lines below work as expected MsgBox coll(2).Address MsgBox coll(3).Address End Sub ,本地文件夹http://192.168.100.100:3000),用于将信号发送到空调并从中获取信息。

除此之外,我已经使用Vuejs构建了一个webapp来管理AC,并设置一个Nginx服务器来访问webapp(地址:~/api,本地文件夹http://192.168.100.100)。 一切都在本地网络上完美运行,但我希望远程访问所有内容。所以我转发了端口~/controller/dist,我可以通过互联网访问网络应用,但它无法正常工作,因为它无法访问API服务器。

是否正常,我还要转发端口80,还是有办法让应用程序在本地主机上查找API?

2 个答案:

答案 0 :(得分:0)

你可以转发端口3000,它应该可以工作。

另一种选择是使用ngrok。它允许您直接打开隧道(无论您的防火墙设置如何)到您的API。您只需注册一个免费帐户,就可以无限期地运行一个隧道。唯一的缺点是你需要使用他们的shortUrl(比如https://asdasd12.ngrok.io,每次你重新启动时都会改变。你可以付钱去除它,并获得一个永久的子域名(如https://myniceapi.ngrok.io

答案 1 :(得分:0)

两者都应该在本地网络中工作,因为每个人都知道谁是谁。如果通信是服务器到服务器,两者都应该工作,因为它是相同的方案。但是如果客户端执行Ajax与服务器通信,你也应该转发端口3000。因为请求超出了本地环境(如果您不在网络中)。

服务器到服务器:localhost - >本地主机

客户端(浏览器)到服务器:互联网 - >本地主机

如果服务器(本地)向客户端(远程)执行请求,则可以避免转发。

相关问题