2013-05-04 13 views
9

Już widziałem to samo pytanie - upstream prematurely closed connection while reading response header from upstream, client Ale jak Jhilke Dai powiedział, że nie rozwiązano go w ogóle i zgadzam się. Wystąpił ten sam dokładny błąd podczas instalacji nginx + phpFPM. Aktualne wersje oprogramowania: nginx 1.2.8 php 5.4.13 (cli) w FreeBSd9.1. W rzeczywistości bit wyizolował ten błąd i był pewny, że przy próbie importowania dużych plików większych niż 3 mbs do mysql za pośrednictwem phpMyadmin. Zliczono również to połączenie zamknięcia z backendem po osiągnięciu limitu 30 sekund. Nginx dziennika błędów rzuca toPHP-FPM - górne przedwcześnie zamknięte połączenie podczas odczytywania nagłówka odpowiedzi

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

moje granice php.ini odpowiednio podniesione

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

my.cnf związane granica

max_allowed_packet = 512M 

limity 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; 

starał aby zmienić timeouts fastcgi, a także rozmiary buforów, to nie pomogło. Dziennik błędów php nie pokazuje problemu, włączone wszystkie powiadomienia, ostrzeżenie - nic przydatnego. Próbowano również wyłączyć APC - brak efektu.

Odpowiedz

0

Ile czasu zajmuje skryptowi obliczenie? Spróbuj ustawić, zarówno w PHP i Nginx OGROMNE timeouts i monitorować system podczas żądania. Następnie dostosuj swoje wartości, aby zoptymalizować wydajność.

Co więcej, obniżyć poziom logu w PHP-FPM, może jest jakiś rodzaj ostrzeżenia, informacji lub śledzenia debugowania, które mogą dać ci trochę informacji.

Wreszcie należy uważać na liczbę dzieci i procesów dostępnych w PHP-FPM. Może Nginx głoduje, czekając, aż dziecko PHP-FPM będzie dostępne.

1

Miałem ten sam problem, otrzymałem 502 Złą Bramę często i losowo na mojej maszynie programistycznej (OSX + nginx + php-fpm) i rozwiązałem ją zmieniając niektóre parametry w /usr/local/etc/php/5.6/ php-fpm.conf:

miałem ten ustawienia:

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

... i zmienił je na adres:

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

... a następnie ponownie uruchomić usługę php-fpm.

Ustawienia zależą od tego, co znalazłem tutaj: [https://bugs.php.net/bug.php?id=63395]

Powiązane problemy