已经看到了同样的问题 - 上游过早关闭连接,同时从上游读取响应头,客户端 但是正如Jhilke Dai所说,它根本没有解决,我同意.在nginx + phpFPM安装上得到了同样的确切错误.当前软件版本:FreeBSd9.1上的nginx 1.2.8 php 5.4.13(cli).实际上有点孤立这个错误,并确保它在尝试通过phpMyadmin导入大于3 mbs到mysql的大文件时发生.当达到30秒限制时,还计算后端关闭连接.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"
Run Code Online (Sandbox Code Playgroud)
我的php.ini限制相应提高
upload_max_filesize = 200M
default_socket_timeout = 60
max_execution_time = 600
max_input_time = 600
Run Code Online (Sandbox Code Playgroud)
my.cnf相关限制
max_allowed_packet = 512M
Run Code Online (Sandbox Code Playgroud)
Fastcgi限制
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;
Run Code Online (Sandbox Code Playgroud)
试图改变fastcgi超时以及缓冲区大小,这没有帮助.php错误日志没有显示问题,启用所有通知,警告 - 没什么用.还尝试禁用APC - 没有效果.
小智 0
您的脚本需要多长时间来计算?尝试在 PHP 和 Nginx 中设置巨大的超时并在请求期间监视您的系统。然后调整您的值以优化性能。
另外,降低 PHP-FPM 中的日志级别,也许有某种类型的警告、信息或调试跟踪可以为您提供一些信息。
最后,请注意 PHP-FPM 中可用的子进程和进程的数量。也许 Nginx 正在挨饿,等待 PHP-FPM 子进程可用。
| 归档时间: |
|
| 查看次数: |
11672 次 |
| 最近记录: |