2013-05-04 35 views
9

Đã thấy cùng một câu hỏi này - upstream prematurely closed connection while reading response header from upstream, client Nhưng như Jhilke Dai nói nó không được giải quyết và tôi đồng ý. Có lỗi chính xác tương tự khi cài đặt nginx + phpFPM. Phiên bản phần mềm hiện tại: nginx 1.2.8 php 5.4.13 (cli) trên FreeBSd9.1. Trên thực tế bit cô lập lỗi này và chắc chắn nó đã xảy ra khi cố gắng để nhập khẩu các tập tin lớn, lớn hơn 3 mbs để mysql thông qua phpMyadmin. Cũng tính rằng kết nối đóng kết nối phụ trợ khi đạt đến giới hạn 30 giây. Nginx lỗi log ném nàyPHP-FPM - kết nối đầu tiên được đóng sớm trong khi đọc tiêu đề phản hồi

[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" 

giới hạn php.ini của tôi lớn lên theo

upload_max_filesize = 200M 
default_socket_timeout = 60 
max_execution_time = 600 
max_input_time = 600 

my.cnf liên quan hạn

max_allowed_packet = 512M 

giới hạn 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; 

thử để thay đổi thời gian chờ của fastcgi cũng như kích thước bộ đệm, điều đó không được giúp đỡ. nhật ký lỗi php không hiển thị sự cố, đã bật tất cả thông báo, cảnh báo - không có gì hữu ích. Cũng thử vô hiệu hóa APC - không có hiệu lực.

Trả lời

0

Tập lệnh của bạn mất bao lâu để tính toán? Hãy thử đặt, cả trong PHP và Nginx HUGE timeouts và theo dõi hệ thống của bạn trong yêu cầu. Sau đó, điều chỉnh giá trị của bạn để tối ưu hóa hiệu suất.

Ngoài ra, hãy giảm mức nhật ký trong PHP-FPM, có thể có một số loại cảnh báo, thông tin hoặc theo dõi gỡ lỗi có thể cung cấp cho bạn một số thông tin.

Cuối cùng, hãy cẩn thận với số lượng trẻ em và quy trình có sẵn trong PHP-FPM. Có lẽ Nginx đang chết đói, chờ đợi một đứa trẻ PHP-FPM có sẵn.

1

Tôi gặp vấn đề tương tự này, có 502 Bad Gateway thường xuyên và ngẫu nhiên tại máy phát triển của tôi (OSX + nginx + php-fpm) và giải quyết bằng cách thay đổi một số thông số tại /usr/local/etc/php/5.6/ php-fpm.conf:

tôi đã thiết lập này:

pm = dynamic 
pm.max_children = 10 
pm.start_servers = 3 
pm.max_spare_servers = 5 

... và thay đổi họ:

pm = dynamic 
pm.max_children = 10 
pm.start_servers = 10 
pm.max_spare_servers = 10 

... và sau đó khởi động lại dịch vụ php-fpm.

Cài đặt này dựa trên những gì tôi tìm thấy ở đây: [https://bugs.php.net/bug.php?id=63395]