2016-03-01 64 views
0

我有一个由Apache托管的公共访问网页。我也有一个私人节点服务器在处理获取请求的一侧运行。它有点像一个API。 例如,如果我做curl http://localhost:8080/list_of_users,这个节点服务器将返回一个包含所有信息的json文件。如何让Apache托管的公共网页访问同一网络上的私人节点服务器?

我在我的java脚本中使用jQuery从该节点服务器获取json文件。我有http://localhost:8080/list_of_users硬编码在里面。当我在本地进行测试时,一切正常。但是当我尝试从其他网络访问我的网页时,页面本身可以正常工作,但无法完成获取请求。

我觉得我应该公开节点服务器以解决问题?但事实是,我并不需要每个人都可以访问节点服务器。我只需要它可以通过存储在同一台机器上的java脚本访问。那么有没有更简单的方法来做到这一点,而不是公开节点服务器?

我做了Google如何制作公共节点服务器,大多数教程说我需要做一个路由器端口转发。我不认为我有权这样做......这是我试图寻找替代方法来修复它的另一个原因......

我是这个领域的新手,所以我可能会误解事物。对于我的问题可能造成的任何困惑,我表示歉意,并感谢您的所有帮助。

回答

1

如果将要访问node.js服务器的Javascript将在网页中并从用户的浏览器执行,那么node.js服务器必须是公共可访问的。 Javsacript从用户的浏览器运行,因此只能访问公共事物。

无论您的页面是否存储在Apache服务器上的某个可以访问您的私有node.js服务器的地方都无关紧要。这不是Javascript运行的地方。该页面由用户的浏览器下载,然后页面中的Javscript运行在用户的浏览器中。

因此,如果您保持相同的页面架构,则必须公开node.js服务器并为其提供公共IP地址/域名。

或者,您可以通过Apache服务器代理node.js服务器,以便向Apache服务器发出请求(可能位于特定端口上),并且该请求由Apache服务器代理到您的节点。 js服务器。

相关问题