2013-05-04 8 views
9

पहले से ही यही प्रश्न देखा - upstream prematurely closed connection while reading response header from upstream, client लेकिन जैसा कि झिलके दाई ने कहा कि यह बिल्कुल हल नहीं हुआ है और मैं सहमत हूं। nginx + phpFPM स्थापना पर एक ही सटीक त्रुटि मिली। वर्तमान सॉफ्टवेयर संस्करण: फ्रीबीएसडी 9 .1 पर nginx 1.2.8 php 5.4.13 (cli)। असल में इस त्रुटि को अलग कर दिया और यह सुनिश्चित किया कि यह बड़ी फ़ाइलों को आयात करने का प्रयास करते समय, phsMyadmin के माध्यम से mysql में 3 एमबी से बड़ा है। 30 सेकेंड की सीमा तक पहुंचने पर उस बैकएंड क्लोजिंग कनेक्शन को भी गिना जाता है। Nginx त्रुटि लॉग इस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 सीमा फेंकने तदनुसार उठाया

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; 

की कोशिश की फास्टसीजी टाइमआउट्स के साथ-साथ बफर आकार बदलने के लिए, इससे मदद नहीं मिली है। PHP त्रुटि लॉग समस्या नहीं दिखाता है, सभी नोटिस सक्षम, चेतावनी - कुछ भी उपयोगी नहीं है। भी एपीसी अक्षम करने की कोशिश की - कोई प्रभाव नहीं।

उत्तर

0

आपकी लिपि गणना करने में कितनी देर लगती है? PHP और Nginx विशाल टाइमआउट दोनों में सेट करने का प्रयास करें और अनुरोध के दौरान अपने सिस्टम की निगरानी करें। फिर प्रदर्शन को अनुकूलित करने के लिए अपने मानों को ट्यून करें।

इसके अलावा, PHP-FPM में लॉग स्तर को कम करें, शायद कुछ प्रकार की चेतावनी, जानकारी या डीबग ट्रेस है जो आपको कुछ जानकारी दे सकती है।

अंत में, PHP-FPM में उपलब्ध बच्चों और प्रक्रियाओं की संख्या से सावधान रहें। शायद Nginx भूख से मर रहा है, एक PHP-FPM बच्चे के लिए उपलब्ध होने की प्रतीक्षा कर रहा है।

1

मुझे यह वही समस्या थी, मेरे विकास मशीन (ओएसएक्स + nginx + php-fpm) पर 502 खराब गेटवे अक्सर और यादृच्छिक रूप से मिला, और इसे /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-एफ पी एम सेवा को पुनः आरंभ।

यह सेटिंग्स मुझे जो मिला है उस पर आधारित हैं: [https://bugs.php.net/bug.php?id=63395]

संबंधित मुद्दे

 संबंधित मुद्दे