CFL*_*eff 2 load-balancing amazon-web-services amazon-elb http2 aws-application-load-balancer
当我使用Application Load Balancer (ALB)将我的 Web 应用程序部署到 AWS 环境时,我的一些 Web 服务端点不会返回任何数据,并且我的 Chrome 浏览器会为一些 http 调用报告此错误:ERR_SPDY_PROTOCOL_ERROR
找到这个建议后,我在我的 ALB 配置中禁用了HTTP/2支持,现在一切正常。
为什么我必须在我的 ALB 中禁用HTTP/2?这里的根本问题是什么?我是否需要更改 Web 服务代码中的某些内容才能使用HTTP/2?
更新
以下是响应头:
HTTP/1.1 200
Date: Wed, 09 Jan 2019 21:39:13 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Locations Reached: Data to populate locations reached map
Run Code Online (Sandbox Code Playgroud)
正如下面的一个答案所建议的那样,罪魁祸首可能是我的一个标题(到达的位置)在名称中有一个空格,这是无效/格式错误的。我会确保空格被破折号取代。
通常意味着您有一个无效的 HTTP/2 标头。在这方面,HTTP/2 比 HTTP/1.1 更严格。
因此,带有冒号、空格、新行(例如,在配置中打开引号但忘记关闭引号)等的 HTTP 标头名称无效(这些名称可以存在于标头值中,但不能存在于名称中)。
有关如何调试的详细信息,请参见此处:https : //www.michalspacek.com/chrome-err_spdy_protocol_error-and-an-invalid-http-header。
将您的 HTTP/1.1 响应标头添加到您的问题中,也许可以为您指明正确的方向。
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |