已经看到了同样的问题 – 上游过早closures连接,而从上游读取响应头,客户端但是,正如Jhilke Dai说,它根本没有解决,我同意。 在Nginx + PHPFPM安装上有同样的确切错误。 当前软件版本:FreeBSd9.1上的Nginx 1.2.8 PHP 5.4.13(cli)。 实际上,隔离这个错误,并确保它发生时试图导入大文件,大于3 MB到MysqL通过PHPMyadmin。 当达到30秒的限制时,还计算后端closures连接。 Nginx错误日志抛出这个
[error] 49927#0: *196 upstream prematurely closed connection while reading response header from upstream,client: 7X.XX.X.6X,server: domain.com,request: "POST /PHP3/import.PHP HTTP/1.1",upstream: "fastcgi://unix:/tmp/PHP5-fpm.sock2:",host: "domain.com",referrer: "http://domain.com/PHPmyadmin/db_import.PHP?db=testdb&server=1&token=9ee45779dd53c45b7300545dd3113fed"
我的PHP.ini限制相应提高
upload_max_filesize = 200M default_socket_timeout = 60 max_execution_time = 600 max_input_time = 600
my.cnf相关的限制
max_allowed_packet = 512M
Fastcgi限制
优雅的Apache重新启动清除APC吗?
Windows中的用户空间APC队列长度
APC 3.1.x有多稳定?
在XAMPP上激活APC(Windows)
location ~ .PHP$ { # fastcgi_split_path_info ^(.+.PHP)(.*)$; fastcgi_pass unix:/tmp/PHP5-fpm.sock2; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_ignore_client_abort on; fastcgi_connect_timeout 60s; fastcgi_send_timeout 200s; fastcgi_read_timeout 200s; fastcgi_buffer_size 128k; fastcgi_buffers 8 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k;
试图改变fastcgi超时以及缓冲区大小,这没有帮助。 PHP的错误日志不显示问题,启用所有通知,警告 – 没有用的。 也尝试禁用APC – 没有效果。
APC在哪里存储操作码和用户variablescaching?
新的APCu APC用户caching是否在进程之间共享?
禁用或删除apc
使用PHP 5.4.4和APC 3.1.10成功地处理高stream量的任何人?
Windows Server 2008上的PHP APC(PHP 5.4.3 – x64)
我有这个相同的问题,经常在我的开发机器(OSX + Nginx + PHP-fpm)上随机获得502 Bad Gateway,并通过更改/usr/local/etc/PHP/5.6/PHP-fpm中的一些参数来解决它。 CONF:
我有这个设置:
pm = dynamic pm.max_children = 10 pm.start_servers = 3 pm.max_spare_servers = 5
…并将其更改为:
pm = dynamic pm.max_children = 10 pm.start_servers = 10 pm.max_spare_servers = 10
…然后重新启动PHP-fpm服务。
这个设置是基于我在这里找到的:[ https://bugs.PHP.net/bug.PHP?id=63395%5D
你的脚本需要多长时间来计算? 尝试在PHP和Nginx巨大的超时设置,并在请求期间监视您的系统。 然后调整您的值以优化性能。
另外,在PHP-FPM中降低日志级别,可能会有一些类型的警告,信息或调试跟踪,可以给你一些信息。
最后,请注意PHP-FPM中可用的子进程的数量。 也许Nginx正在挨饿,等待一个PHP-FPM的孩子可用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。