【问题标题】:How to let an Apache hosted public web page access a private node server on the same network?如何让 Apache 托管的公共网页访问同一网络上的私有节点服务器?
【发布时间】:2016-06-13 05:53:14
【问题描述】:

我有一个由 Apache 托管的可公开访问的网页。我还在处理获取请求的一侧运行了一个私有节点服务器。它有点像 API。 例如,如果我做curl http://localhost:8080/list_of_users,这个节点服务器会返回一个包含所有信息的 json 文件。

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

我觉得我应该公开节点服务器以解决问题?但问题是,我真的不需要每个人都可以访问节点服务器。我只需要它可以被存储在同一台机器上的 java 脚本访问。那么有没有比公开节点服务器更简单的方法呢?

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

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

【问题讨论】:

    标签: java node.js apache server


    【解决方案1】:

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

    您的页面是否存储在您的 Apache 服务器上可以访问您的私有 node.js 服务器的位置并不重要。那不是运行 Javascript 的地方。页面由用户的浏览器下载,然后页面中的Javscript在用户的浏览器中运行。

    所以,如果你保持相同的页面架构,你将不得不公开 node.js 服务器并给它一个公共 IP 地址/域名。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多