了解mod_proxy和Apache 2以编写彗星服务器

The*_*ppo 8 javascript apache proxy mod-proxy

我目前尝试为某种彗星技术(长轮询XHR请求)实现一个简单的HTTP服务器.由于JavaScript对跨域请求非常严格,我有几个问题:

  1. 据我所知,任何apache worker在提供请求时都被阻止,因此当所有工作者都有服务请求时,将"脚本"写为通常的网站会阻止apache. - >不行!
  2. 我想出了编写一个自己的简单HTTP服务器的想法,仅用于提供这个长轮询请求.此服务器不应该阻塞,因此每个工作人员可以同时处理许多请求.因为我的网站还包含内容/图像等,而我的服务器不需要服务器内容,所以我在80不同的端口启动了他.现在的问题是我无法在我JavaScript的apache和我的彗星服务器运行之间进行交互在不同的端口上,由于一些跨域限制. - >不行!
  3. 然后我想出了用于在mod_proxy新的子域上映射我的服务器的想法.我真的不知道它是如何mod_proxy工作的,但我可以想象我知道我的第一种方法有同样的效果吗?

什么是创建这种经典网站和这些长轮询XHR请求的这种组合的最佳方式?我是否需要在自己的服务器上实现内容交付?

FWH*_*FWH 3

我非常确定使用 mod_proxy 会在处理请求时阻止工作人员。

如果您可以使用 2 个 IP,则有一个相当简单的解决方案。假设 IP A 是 1.1.1.1,IP B 是 2.2.2.2,假设您的域名是 example.com。

其工作原理如下:

- 将 Apache 配置为侦听端口 80,但仅侦听 IP A。

- 在端口 80 上启动其他服务器,但仅在 IP B 上。

- 将 XHR 请求配置为位于您域的子域上,但具有相同的端口。所以跨域限制并不能阻止它们。例如,您的网站是 example.com,XHR 请求会转到 xhr.example.com。

- 配置您的 DNS,以便 example.com 解析为 IP A,xhr.example.com 解析为 IP B。

-你完成了。

如果您有 2 台服务器并且每台服务器都有其 IP,则此解决方案将有效;如果您有一台服务器有 2 个 IP,则该解决方案也将有效。

如果你不能使用2个IP,我可能有另一个解决方案,我正在检查它是否适用于你的情况。