无法加载资源:net::ERR_INCOMPLETE_CHUNKED_ENCODING

Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING

我的应用程序一直有一些问题无法加载视图(有时)。 我正在 运行 使用 php-fpm 和 nginx(php5.6.8 和 nginx 1.8.0)从源代码编译的 Debian 服务器。最重要的是,我是 运行ning Lavavel 4.2.

到目前为止,我在 Chrome 和 Firefox 中都遇到了问题(chrome 只是停止加载并显示错误,firefox 不显示错误但显示视图的不完整版本).

到目前为止,我已经检查了 nginx 和 PHP 的权限,它们都是 运行 同一个用户 (www-data:www-data)。 我的 php-fpm 套接字配置为:

[sitename]

listen = /var/run/php5-fpm/sitename.sock
listen.backlog = -1
listen.owner = www-data
listen.group = www-data
listen.mode=0660

; Unix user/group of processes
user = folderuser
group = www-data

; Choose how the process manager will control the number of child processes.
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

请注意,我将用户设置为 folderuser,因为站点文件所在的文件夹归 folderuser (folderuser:www-data) 所有。 此外,laravel文件夹内的权限配置为755(775用于缓存和上传文件夹,以便www-data可以写入缓存文件)

我禁用了任何类型的服务器端 php 缓存(zend opcache 除外)。

我也试过禁用 chrome 中的 "prefetch resources to load pages more quickly" 功能,但没有解决问题。

作为最后的手段,我尝试了这个解决方案:

/*
|--------------------------------------------------------------------------
| Fix for Chrome / PHP 5.4 issue
| http://laravel.io/forum/02-08-2014-another-problem-only-with-chrome
|--------------------------------------------------------------------------
*/

App::after(function($request, $response)
{

    $content = $response->getContent();

    $contentLength = strlen($content);

    $response->header('Content-Length', $contentLength);

});

还有这个脚本的一些变体,但我遇到了一些内容长度不匹配的问题(比 net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误更常见。

总而言之,我检查了服务器端的权限和 user/group 设置,我禁用了服务器端缓存(zend 除外),我搞砸了 chrome 设置,我我尝试了 laravel、none 的脚本,其中解决了我遇到的问题。请注意,该问题会以随机间隔随机出现在网站上的随机页面上。

我真的不知道解决我的问题的下一步是什么,因为上面的解决方案是我在互联网上找到的唯一解决方案。

非常感谢您的帮助。

编辑: 我有同一个应用程序的测试版 运行 关闭另一台具有完全相同配置的服务器(唯一的区别在于硬件,但内存更大) ),该问题不存在。

另外,我忘了提到该应用程序不 运行 使用 HTTPS(当前)。然而,测试版是 运行 HTTPS。

编辑出现问题的服务器有 2048 MB RAM,测试版服务器有 8192 MB RAM。

编辑 发生错误时我用fiddler检查了响应,它只是在某些时候无缘无故地切断了响应。

我在最新的 Debian 上的 Nginx 服务器 运行 上看到了类似的问题。我是 运行 一个安装了高级自定义字段的 Wordpress 站点。在高级自定义字段上,它表示问题可能与 php.ini 文件中的 max_input_vars 值有关。我将我的价值从 1000 增加到 3000,这解决了我的一个网站上的问题。

您可以查看此 link 看看它是否对您有帮助。 http://www.advancedcustomfields.com/faq/limit-number-fields/

您可能需要检查文件夹 /var/lib/nginx 是否也属于 www-data。我有这个问题,当响应页面太大时,Nginx 工作进程尝试使用这个文件夹但失败了,因为它由 nginx 和 [=11= 下的工作进程 运行 拥有].通过执行 chown -R www-data:www-data /var/lib/nginx,问题得到解决。

如果以后有人发现这个,我的 net::ERR_INCOMPLETE_CHUNKED_ENCODING 是 space 中 运行 的结果。查看您的磁盘使用情况,看看是否是这个原因!