我有一个由Apache托管的公共可访问网页。我还有一个私有节点服务器在旁边运行处理get请求。它有点像API。
例如,如果我curl http://localhost:8080/list_of_users
,此节点服务器将返回一个包含所有信息的json文件。
我在我的java脚本中使用jQuery从该节点服务器获取json文件。我有http://localhost:8080/list_of_users
硬编码。当我在本地测试时,一切正常。但是当我尝试从其他网络访问我的网页时,页面本身有效,但无法完成获取请求。
我觉得我应该公开节点服务器才能解决问题?但问题是,我并不需要每个人都可以访问节点服务器。我只需要通过存储在同一台机器上的java脚本来访问它。那么有没有更简单的方法来实现这一点,而不是让节点服务器公开?
我做了google搜索如何制作公共节点服务器,大多数教程说我需要做一个路由器端口转发。我不认为我有权这样做......这是我试图找到另一种解决方法的另一个原因......
我是这个领域的新手,所以我可能会误解事物。对于我的问题可能导致的任何混淆,我道歉,并感谢您的所有帮助。
答案 0 :(得分:1)
如果要访问node.js服务器的Javascript将在网页中并从用户的浏览器执行,则node.js服务器可以公开访问。 Javsacript从用户的浏览器运行,因此它只能访问公共事物。
将您的页面存储在Apache服务器上可以访问您的私有node.js服务器的位置并不重要。这不是Javascript运行的地方。该页面由用户的浏览器下载,然后页面中的Javscript在用户的浏览器中运行。
因此,如果您保持相同的页面架构,则必须公开node.js服务器并为其提供公共IP地址/域名。
或者,您可以通过Apache服务器代理node.js服务器,以便向Apache服务器发出请求(可能在特定端口上),并且该请求由Apache服务器代理到您的node.js服务器。