【问题标题】:Hosting provider blocks users because of AJAX requests托管服务提供商因 AJAX 请求而阻止用户
【发布时间】:2012-08-31 14:54:54
【问题描述】:

我创建了一个chat system,它适用于 AJAX 请求。仅在几分钟到半小时的聊天后,我的托管服务提供商开始阻止人们,这可能是因为它将 AJAX 请求视为企图 (D)DoS 攻击。

我最好的选择是什么?

【问题讨论】:

  • 首先问问楼主——可能是完全不相关的事情
  • @BenGriffiths 我确实问过他们。他们说这是防火墙。
  • 您网站上的每个 AJAX 请求之间的间隔是多少?

标签: php javascript ajax asynchronous ddos


【解决方案1】:

显然,您已经构建了 ajax 聊天以在每次 ajax 调用时加载所有消息。这对服务器来说太重了。

正如@Daniil 所说,您最好使用 websockets(例如 pusher 或 slanger)来传递实时消息。

【讨论】:

  • 你能举个例子说明如何做吗?
  • @RobinJ 看看 APE; www.ape-project.org,它应该有一个推送消息聊天框的演示。如果你以战场 3 闻名; Web 界面还使用推送器来通知停机时间和维护,也许还有更多的东西。为了实现 Slanger,我建议先从 pusher 开始,使用他们的服务器(带有免费版本)。然后,一旦一切正常,就切换到 slanger(功能较少,但可自行安装)。 ;)
  • 这是来自 pusher.com 的示例:pusher.com/tutorials/realtime_chat_widget
【解决方案2】:
  1. 当您需要对数据进行实时操作时,请使用 websocket。
  2. 如果您仍想使用 AJAX,请不要对脚本发出过多请求。

【讨论】:

    【解决方案3】:

    使用不那么糟糕的主机?

    更重要的是,确保发送的 AJAX 请求的数量是合理的(每 5 秒一个应该没问题)。确保您的主机实际上允许诸如聊天之类的高活动,因为大多数共享主机可能不会。

    根据您的需要,您可能想要获得 VDS 甚至是完整的专用服务器。

    【讨论】:

      【解决方案4】:
      1. 移出到其他主机。
      2. 优化代码。

      这不可能是防火墙问题,因为您说它在被阻止之前可以工作半小时。这可能是您的托管公司迫使您转向更昂贵的套餐的借口。

      【讨论】:

      • 我目前为 1.5GB 的主机支付 12.5 欧元/年,每月带宽为 20GB,数据库不受限制,电子邮件地址不受限制,25 个子域和 cronjobs 不受限制。你知道另一家托管公司可以以同样的价格给我(或者可能少一点)吗?
      • 这太便宜了。我认为你的主机超卖了。
      • 您以如此之少的代价获得了如此多的事实足以证明,他们很容易因任何异常情况而关闭您的网站,例如重负载的 ajax 聊天框。
      • @ColorWP.com ;它实际上是一个budgethoster,所以你是对的。
      【解决方案5】:

      Long polling?

      我并不是建议您不要使用 websockets 或服务器发送事件之类的东西,但是,如果由于某种原因您无法使用,那么我想您可以尝试通过不尽快关闭它们来减少 AJAX 请求的数量就像你现在做的那样。

      【讨论】:

      • 答案长度是为了保证答案有定性价值。例如这里,wtf 是“Long polling”,这与问题有什么关系等等......
      • 如果您能够使用计算机加入 SO 并提出问题,那么您显然可以点击链接。如果您能够编写聊天系统,那么您就能够理解您将在该页面上找到的文本。你还想要什么,小说?编辑:“答案长度是为了确保答案具有定性价值”-您的意思是“定量”
      • 这就是 SO 的工作方式:您不会只用一个链接来写答案。 meta.stackexchange.com/questions/8231/…meta.stackoverflow.com/tags/link-only-answers/info
      • 一个链接就足够了,尤其是因为这不是一个wiki,而且这种情况已经在另一个问题上讨论过。还要感谢您的反对,我非常感谢您的有用评论。那是,嗯......我想它在常见问题解答中。
      • 您阅读了链接吗? Why are some questions or answers removed?barely more than a link to an external site。 “链接”答案不是一个好的答案,这是礼仪。如果它已在其他地方讨论过,您至少需要链接到它,没有人是通灵者并且知道它。欢迎您对您的其他答案(当然是从早些时候)投赞成票。我不是为了报复或任何事情。
      猜你喜欢
      • 1970-01-01
      • 2020-09-06
      • 2020-05-03
      • 1970-01-01
      • 2015-10-09
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      相关资源
      最近更新 更多