我在 HTTPS 模式下设置 Sentry 服务器时遇到问题。Raven(Sentry 客户端)时不时地将这个错误消息写入日志文件:
Unable to reach Sentry log server: <urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol> (url: https://$(valid_server)/)
Web UI 工作正常。绝大多数来自 Raven 的消息都被很好地接收,Sentry 将它们处理成可用的输出。但是,由于这些错误,有时会丢失一些东西。
我试图弄清楚这一点,但死胡同似乎紧随其后。基本上看起来很像这样:
Python Requests requests.exceptions.SSLError: [Errno 8] _ssl.c:504: EOF 发生违反协议
但是,当使用 TLS 1.2 用类似的 s_client 查询测试我的 Sentry 服务器时,它会导致一个有效的会话,这与那里的示例不同。
这也与此无关,因为未使用 SNI:
python-requests 2.0.0 - [Errno 8] _ssl.c:504: EOF 发生违反协议
我无法连贯地重现错误。Raven 的测试通过并且没有严重错误,直到日志中弹出错误。
我的设置是:Python 2.7.5 中的 Raven 4.2.1,Nginx 1.6.0 作为处理 HTTPS 的反向代理,最后是带有默认 Gunicorn 0.17.4 的 Sentry 6.4.4。Nginx 配置与官方文档 ( http://sentry.readthedocs.org/en/latest/quickstart/nginx.html )非常相似,但由于 HTTPS 而做了一些更改。