了解 mod_proxy 和 Apache 2 以编写 comet-server

2024-02-12

我目前尝试为某种类型实现一个简单的 HTTP 服务器comet http://en.wikipedia.org/wiki/Comet_(programming)-技术(长轮询 XHR 请求)。作为JavaScript对于跨域请求非常严格我有几个问题:

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

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


我很确定使用 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,我可能有另一个解决方案,我正在检查它是否适用于你的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解 mod_proxy 和 Apache 2 以编写 comet-server 的相关文章

随机推荐

  • webview中的字体没有改变

    Typeface hnr Typeface createFromAsset this getAssets HelveticaNeueLTStd Md otf html table tr td align left td tr table
  • 用于检测变量更改的 Java 事件侦听器

    我似乎无法在任何地方找到我的问题的答案 是否有任何事件侦听器可以检测布尔值或其他变量的变化 然后对其采取行动 或者是否可以创建自定义事件侦听器来检测这一点 请我似乎无法在任何地方找到解决方案 我发现这个网站 http www example
  • GroupLayout:值得学习吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对java 特别是swing 比较陌生 最近一直在制作一些相当简单的应用程序 边学习边学习 最新的有很多表单组件 例如 JLabels JTe
  • 登录 Microsoft AD 后 Request.IsAuthenticated 始终为 false

    我有一个 ASP NET 4 5 1 MVC WebAPI 项目 它使用 SSO 针对 Microsoft 进行身份验证 成功登录 Microsoft 后 我 的 HomeController 上仍然有 Request IsAuthenti
  • 如何在文本区域中使用不同的字体颜色?

    我希望在输入特定关键字时文本区域中的字体颜色发生变化 就像在 Visual Studio 中一样 我没有在任何地方见过这个 所以我不知道这是否可以用 HTML 和 JavaScript 实现 有人见过这样的东西吗 或者知道怎么写吗 Text
  • 如何使用包含正则表达式的测试路径

    我想检查文件 Test txt 是否存在于特定目录 文件夹名称为 16 位数字 中 我尝试了以下命令 Test Path C Users
  • 无法使用 Unity 找到名称空间“ServiceModel”

    我想在我的 Unity 应用程序中使用 WCF 服务 通过命名管道 因此 我包含以下两个命名空间 using System ServiceModel using System ServiceModel Channels 在Unity中运行我
  • Composer:删除一个包,清理依赖项,不更新其他包

    情况 假设我有一个由 Composer 安装的项目 其中包含两个软件包 php composer phar require squizlabs php codesniffer 2 0 phpmd phpmd 2 1 自动生成的compose
  • 如何解决“此翻译单元中未实现带有选择器的方法”?

    我收到这个错误 如下图所示 the showSingerInfo方法在父类中定义 我该如何解决这个警告 看起来 Clang 无法解析 showSingerInfo 方法的声明 我猜测 showSingerInfo 是翻译单元 类中的本地方法
  • 如何避免从 solr 检索整个存储字段

    我使用 sunspot 和 solr 作为 Rails 应用程序来搜索电子书内容 为了突出显示功能 我必须将 ebook content 设置为存储的文件 每次我查询 solr 的结果时 它都会发回有关该书的整个文档内容 其中使得查询非常慢
  • 在 Android 设置中防止“匹配的 Activity 可能不存在”

    大部分活动操作 用于启动各种设置活动 Settings http developer android com reference android provider Settings html类带有警告 在某些情况下 匹配的活动可能不存在 因
  • 如何使用正则表达式和 Java 计算文本中的音节

    我有文字作为String并需要计算每个单词的音节数 我尝试将所有文 本拆分为单词数组 然后分别处理每个单词 我为此使用了正则表达式 但音节模式并没有发挥应有的作用 请建议如何更改它以计算正确的音节数 我的初始代码 public int ge
  • ZipInputStream.getNextEntry 在某些 zip 文件上返回 null

    我有一个简单的代码来提取 zip 文件 它按预期工作得很好 但在测试过程中 我尝试使用一些 zip 文件 我从互联网下载的字体 图标和模板 来编写代码 以确保它应该提取任何 zip 文件已提供 但它不适用于某些 zip 文件 以下是重新生成
  • nginx 未知指令“上游”

    我使用 nginx 作为代理服务器将请求转发到我的 Gunicorn 服务器上 当我跑步时sudo nginx t c etc nginx sites enabled mysite我收到以下错误 emerg unknown directiv
  • Swift:为蓝牙中央管理器选择队列

    我正在开发一个应用程序 该应用程序将通过 BLE 与智能设备连接并与其通信 问题是 在哪个队列中处理蓝牙事件的最佳实践是 我读过很多教程 在所有教程中我发现了这一点 centralManager CBCentralManager deleg
  • 重命名存储库名称后更新origin

    我正在尝试将我的项目文件推送到我的存储库 但是当我这样做时 我会收到如下屏幕截图所示的错误 我之前在该项目文件中有一个存储库 然后将其删除 现在我在该项目文件中创建了另一个具有不同名称的存储库 但我现在收到这些错误 请告诉我应该做什么 将源
  • 向下滚动时,滚动 100vh 到底部

    我想达到同样的效果http www squaredot eu Intro http www squaredot eu Intro 因此 如果我向下滚动 正文必须滚动 100vh 到底部 而且如果向上滚动 主体必须向上滚动 100vh 我尝试
  • 如何在Python中启用辅助轴(twiny)的共享

    我正在尝试启用主轴和辅助轴的共享 下面的代码说明了示例图 该图包含两个水平轴 主轴网格显示为绿色 而另一个轴网格显示为红色 usr bin python coding utf 8 import numpy as np import matp
  • Android 模拟器:如何复制模拟器/AVD?

    我目前正在对 Google 应用商店 又名 Google Play 上已有的现有应用程序进行升级 我想测试客户升级时数据转换是否顺利 我有一个 AVD 安装了旧版本的应用程序 通常的做法是在此应用程序上运行新版本 看看它是否有效 但问题是
  • 了解 mod_proxy 和 Apache 2 以编写 comet-server

    我目前尝试为某种类型实现一个简单的 HTTP 服务器comet http en wikipedia org wiki Comet programming 技术 长轮询 XHR 请求 作为JavaScript对于跨域请求非常严格我有几个问题