FMu*_*ser 5 javascript google-chrome nginx
当我尝试通过 https 在服务器上发布图像(使用 jQuery 或 Dropzone.js)时,如何处理 Google Chrome (v.51.0) 中的 net::ERR_CONNECTION_CLOSED 错误。
Firefox 在 http 和 https 上运行良好。Chrome 仅限 http。没有文件上传的一切在 Chrome+HTTPS 上都可以正常工作。php 超时结束后出现此错误:
dropzone.min.js:1 POST https://{example.com}/images/upload net::ERR_CONNECTION_CLOSED
Run Code Online (Sandbox Code Playgroud)
没有其他消息。PHP 和 Nginx 没有任何日志。
我的服务器:PHP 7.0.9 + Nginx 1.10 + Ubuntu Server 16.04 + HTTP2.0,带有 Comodo 的 SSL 证书。
更新
这是一种解决方法,而不是问题的解决方案。当我在启用了 http2 的情况下使用 nginx 时,在 chrome 中发生了这个错误。
我能够在 nginx 中禁用 http2 (或者干脆删除启用它的选项)。
我变了:
server {
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
Run Code Online (Sandbox Code Playgroud)
到:
server {
listen 443 ssl;
listen [::]:443 ssl;
Run Code Online (Sandbox Code Playgroud)
之后chrome和nginx就可以正常工作了。
我的问题特别奇怪的是,只有当我传递大标头(超过 500 个字节)时才会发生这种情况。在所有其他时间,chrome/ngnx 都表现得很好。在整个过程中,curl 也能很好地达到我的终点。此外,当我绕过 nginx 直接访问端点时,chrome 和我测试的所有其他浏览器都运行良好。
从我所看到的情况来看,我怀疑这是 ALPN 的问题。也许是因为我的 openssl 版本已经过时了。不过,降级到 http 1.1 比研究这种可能性更容易。
| 归档时间: |
|
| 查看次数: |
14674 次 |
| 最近记录: |