ssl - 由于 Heroku 的空服务器响应,Cloudflare 返回 520
问题描述
我多年来一直运行良好的 Rails 应用程序突然开始返回 Cloudflare 520 错误。具体来说,后端调用返回 520,而对前端子域的api.exampleapp.com
命中工作正常。www.exampleapp.com
困难的部分是我的配置或代码都没有改变。Cloudflare 认为这是在 Heroku 服务器返回空响应时发生的。
> GET / HTTP/1.1
> Host: api.exampleapp.com
> Accept: */*
> Accept-Encoding: deflate, gzip
>
{ [5 bytes data]
* TLSv1.2 (IN), TLS alert, close notify (256):
{ [2 bytes data]
* Empty reply from server
* Connection #0 to host ORIGIN_IP left intact
curl: (52) Empty reply from server
error: exit status 52
在 Heroku 端,当我点击任何这些 url 时,我的日志似乎都没有注册请求。我还仔细检查了我的 SSL 设置(在安装在 Heroku 上的 Cloudflare 创建的原始证书),以防万一,它似乎是正确的并且没有过期。
我无计可施。该应用程序已经关闭了几天,用户在抱怨,尽管是付费客户,但两个客户服务团队都没有回应。我的开发运维知识相当有限,因此,非常感谢任何帮助或线索!
解决方案
欢迎加入俱乐部:https ://community.cloudflare.com/t/sometimes-a-cf-520-error/288733 这似乎是 7 月下旬引入的 Cloudflare 问题,影响了数百个运行非常不同配置的站点。自首次报告该问题以来已近一个月,Cloudflare “修复”了两次,但它仍然存在。非常令人沮丧。
推荐阅读
- algorithm - 递推方程的复杂度类
- android - Android 依赖配置
- cmake - ctest:默认禁用一组标记测试 - 但在明确定位时运行它们
- java - 当我使用 nextInt() 它跳过下一行
- templates - WooCommerce 订阅挂钩
- angular - 单击 Ionic 本地通知时转到特定路径
- java - 没有使用正确格式的休眠从数据库中获取数据
- jquery - Leaflet Draw - 将 GeoJSON 保存到服务器
- opengl - 如何将 pyopengl 纹理大小缩放到 pygame 窗口大小?
- python - 如何使用“on_message”事件添加命令延迟 - Discord.py