如何在Apache服务器之间使用或设置基于P2P /云的连接


How to use or setup P2P / Cloud based connections between Apache servers?

我一直在浏览P2P文档,但我似乎找不到正确的信息,因为大多数都在谈论P2P文件共享或VOIP。

我的问题实际上是关于两台机器之间使用P2P或基于云的握手的HTTP连接。

为了简单起见,我有一个基于客户机到客户机LAMP的应用程序。该应用程序基本上是一个基于浏览器的PHP软件,运行在一个小型服务器上。

Office A和Office B各有一个服务器运行我的应用程序,并且每个服务器需要通过HTTP GET/POSTS相互通信。

如果每个办公室都有一个公共IP并且路由器配置正确,我的应用程序可以正常工作。

但现在我的问题是,在现实世界中使用这个需要独立于互联网连接类型和网络配置。

我注意到越来越多的设备,如IP摄像机和DVR,现在都具有P2P连接,w/c使得连接设备非常容易,甚至通过防火墙。

基本上设备有一个预先设置的IP/域名w/c是P2P服务器..

我还了解到数据不再是P2P服务器的负担,因为数据不再通过P2P服务器,而只是通过P2P服务器在两台设备之间"握手",然后数据直接在两台设备之间来回....

这是我想在我的应用程序中模拟的。

基于LAMP的客户端应用程序是否可行?真的很复杂吗?有没有现成的P2P服务器,很容易安装和配置为我的目的?

没有"简单"的方法来做p2p,也没有使用php或apache的模块或技术。

像BitTorrent或早期版本的Skype这样的p2p应用程序通常通过与路由器通信来有效地打开其他客户端将连接到的端口来工作。如果你不能打开路由器上的端口,你必须让两个客户端都连接到第三方服务器,并通过该服务器路由请求。

有一些库用于连接Java Tomcat或Jetty服务器与p2p,但它们不经常在生产中使用。你"可以"尝试在其中一个上面运行一个基于java的PHP实现,但我认为你想做的事情可能不值得付出努力。

如果我被要求这样做,我会这样做:

  • 在两个办公室之间建立永久VPN连接,以便他们可以看到彼此的服务器
  • 在两个办公室之外的公共网络上放置一个服务器,并让他们都与之通信。