522错误意味着我们无法在所有到达原点Web服务器。

这方面有几个主要原因:

  • 原始服务器太超载回应。
  • 源Web服务器具有挡住了我们的请求的防火墙,或者数据包被主机的网络内下降。
  • 源Web服务器脱机,或与我们不正确的DNS设置为它的IP地址设置(即离我们的要求是送错了地方)。
  • 还有我们和原始Web服务器之间的网络路由问题。
  • 起源服务器保持连接禁用。

在所有这些情况下,这是值得检查原点Web服务器是活动的,才去进一步这里接受HTTP请求,同时也与我们在您的帐户的DNS设置正确。

原始服务器太超载回应

确保源服务器不会过载。如果是,它可能是丢弃请求。一般来说,要检查一个好处是平均负载。在Linux / Unix上,你可以通过在命令行上的“W”运行命令,或使用'顶'命令检查检查。什么构成根据负载值可以根据计算机并在其上运行的软件上,但一般来说过10-20的平均负载左右可能意味着该服务器超载不同的高负荷。这是最适合您的主机或这个系统管理员来检查,如果你不确定。

起源有防火墙(或速率限制器),它挡住了我们的请求

这是间歇522错误的最常见的原因。关键的事情要检查最初是 -

  • 请确保你没有在.htaccess,iptables的,或您的防火墙阻止CloudFlare的IP地址。
  • 确保您的托管服务提供商是不是速率限制或阻止来自CloudFlare的IP地址IP请求,并要求他们在白名单地址中提到的IP地址http://www.cloudflare.com/ips

当流量通过CloudFlare的一个网站,原点将首先看到的要求从我们走来。大多数通过CloudFlare的网站的要求会出现只来自我们的IP地址了一把。正因为如此,这往往引发防火墙和IP率限制器从我们这里块请求,认为该网站受到攻击。CPHulk(附带的cPanel)和其他服务已经知道做到这一点。前阻止这种情况的发生,确保中提到的IP地址,这里  已经被列入白名单,或者完全禁用速率限制。

有CloudFlare的和原始Web服务器之间的网络路由问题

这是更困难比其他原因,排除故障,并最好以确保其他潜在原因已被排除出检查在此之前。如果您认为是这样的话,请提出与我们的支持团队支持票。有用的信息,为用户提供这将是─

  • 迄今已签什么样的信息。
  • 港铁或traceroute的从服务器到我们其中一个IP地址,最好是你已经看到在过去离我们请求的IP地址之一。你可以找到如何运行的地铁或跟踪路由信息在这里

原始服务器保活已禁用

CloudFlare的使用的Keep-Alive标头以提高性能。禁用它将导致从连接失败,并在某些情况下返回522s。此功能默认情况下,在大多数主要的Web服务器的当前版本,因此,除非你明确禁用它,这不应该是一个问题。

究竟是什么触发522错误?

当CloudFlare的无法建立一个TCP连接到该网站的原始服务器522错误响应返回。

当有人访问启用CloudFlare的专用网站,一个连接的CloudFlare和网站的源服务器之间建立的。要建立连接,TCP使用三次握手。

  1. SYN:CloudFlare的发送三个SYN包到源服务器。
  2. SYN + ACK:在响应中,源服务器用SYN + ACK应答。
  3. ACK:最后的CloudFlare发送一个ACK返回给源服务器。

在这一点上,CloudFlare的和源服务器都已经收到的连接确认和建立通信。如果源服务器没有在15秒内发送一个SYN + ACK回的CloudFlare,将出现522错误,并关闭连接。

这里是示出一个成功的TCP握手的图:

这里是在未从原始服务器15秒内返回的SYN + ACK,触发522超时的例子:

当起源与SYN + ACK响应并建立TCP连接,但从来没有响应90秒(524条件的ACK请求中的ACK请求发生了522超时另一个条件,但等待时间过长发送响应)。下面是一个例子,详细说明这样的情景:

检查与您的服务器管理员这些条件或托管服务提供商是解决这些错误的最好方法。如果有网络问题,一个跟踪路由从网站起源或地铁可能是有用的(与下文)。

如果继续看排除上述可能性,并解决该问题后,522错误,请联系CloudFlare的支持作进一步调查。

参考资料

MTR /路由跟踪诊断和使用

卷曲

https://support.cloudflare.com/hc/en-us/articles/200171906-Error-522

最新文章

  1. <form:select>的使用
  2. win8 系统安装node环境记录
  3. TcpListener 类
  4. MVC将服务器端的物理路径转换为服务器路径
  5. for语句
  6. [UML]UML系列——状态机图statechart diagram
  7. js webapp 滑动事件
  8. ubuntu不能访问windows中的文件
  9. 学了C语言,如何利用cURL写一个程序验证某个网址的有效性?
  10. [转载]Spring Annotation Based Configuration
  11. 常见设计模式解析和实现(C++)Prototype模式(原型模式)
  12. iOS开发-block使用与多线程
  13. IOS开发之NSObject协议类方法说明
  14. ANDROID_MARS学习笔记_S03_009_GOOGLEMAP3
  15. [HNOI 2013] 旅行 (数学)
  16. 《Java并发编程实战》第七章 取消与关闭 读书笔记
  17. 实验楼-4-Linux文件权限
  18. 对TCP三次握手的思考
  19. apply、call、bind的区别
  20. JOptionPane

热门文章

  1. Esper学习之十五:Pattern(二)
  2. 【Mybatis】Mybatis基本构成
  3. jQuery的一些静态方法
  4. Python Tkinter Entry(文本框)
  5. HTTP协议剖析 (附HttpWatch工具监控网络请求)
  6. Android M App休眠 (adb shell dumpsys usagestats)
  7. 设置RabbitMQ远程ip登录
  8. async 与await
  9. Python拷贝文件脚本
  10. Rails 添加新的运行环境