2013-05-04 9 views
9

すでに同じ質問が表示されています -​​ しかし、Jhilke Daiはそれは全く解決されていないと私は同意します。 nginx + phpFPMのインストール時に同じ正確なエラーが発生しました。現在のソフトウェアのバージョン:FreeBSD上のnginx 1.2.8 php 5.4.13(cli)。実際には、このエラーを分離して、phpMyadmin経由で3MB以上の大きなファイルをmysqlにインポートしようとしたときにエラーが発生していることを確認してください。また、30秒の制限に達したときに、バックエンドのクローズ接続を数えました。このPHP-FPM - 応答ヘッダーを読み取っている途中で早期にクローズされた接続

[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の限界を投げる nginxのエラーログは、それに応じて試み

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

my.cnfの関連する限界

max_allowed_packet = 512M 

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

を調達しますfastcgiタイムアウトやバッファサイズを変更すると、それは役に立たない。 PHPエラーログに問題が表示されず、すべての通知が有効になっています。警告はありません。 また、APCを無効にしてみました。効果はありません。

答えて

0

スクリプトの計算時間はどのくらいですか? PHPとNginx HUGEの両方のタイムアウトを設定し、リクエスト中にシステムを監視してください。次に、パフォーマンスを最適化するために値を調整します。

また、PHP-FPMのログレベルを下げてください。何らかの情報を与える警告、情報、またはデバッグトレースがあります。

最後に、PHP-FPMで使用可能な子プロセスの数に注意してください。多分、NginxはPHP-FPMの子供が利用できるようになるのを待っています。

1

私の開発マシン(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]

関連する問題