nginx 1.9 चल रहा है */पीएचपी 7.0 * (लेकिन ठीक उसी व्यवहार 5.6 में * भी।)Nginx/पीएचपी एफ पी एम सुंदर स्टॉप (SIGQUIT): इतना सुंदर नहीं
शान से एक PHP-एफ पी एम को रोकने के लिए प्रयास कर रहा है /।। रखरखाव के दौरान नोड शटडाउन के लिए nginx कॉम्बो। ऐसा करने के लिए, मैं SIGQUIT को php-fpm पर भेज रहा हूं, जो एक शानदार शटडाउन प्रदान करना चाहिए।
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 12 Apr 2016 04:48:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
वांछित:
इस परीक्षण के लिए, मैं एक गूंगा स्क्रिप्ट
<?php sleep(5); echo 'done';
निम्नलिखित कर्ल
curl -I x.x.x.x:8080
जो सामान्य रूप से उत्पादन का उत्पादन के साथ स्थानीय रूप परीक्षण किया जाता में किसी भी इन-फ्लाइट अनुरोध के बीच, जब एक सुंदर शटडाउन का अनुरोध किया जाता है, तो वर्तमान अनुरोध समाप्त हो जाना चाहिए, लेकिन कोई अतिरिक्त अनुरोध विफल होना चाहिए।
दुर्भाग्य से, जब मैं इस व्यवहार पीएचपी-एफ पी एम मास्टर की प्रक्रिया के लिए एक SIGQUIT (http://manpages.ubuntu.com/manpages/precise/man8/php5-fpm.8.html) भेज कर, को गति प्रदान करने का प्रयास करें: एक ngnix में जिसके परिणामस्वरूप,
kill -s SIGQUIT $FPMPID
कनेक्शन तुरंत बूँदें 502
HTTP/1.1 502 Bad Gateway
Server: nginx
Date: Tue, 12 Apr 2016 04:48:07 GMT
Content-Type: text/html
Content-Length: 166
Connection: close
कोई सलाह? मैं सिस्टम के इस टुकड़े को जितना संभव हो सके निर्बाध बनाना पसंद करूंगा। धन्यवाद!
संलग्न लिंक काफी मृत (503) है, प्रक्रिया संकेतों का सारांश यहां दिया गया है: https://forum.nginx.org/read.php?3,3485,template=head%3F%3F। –
हां। https://bugs.php.net/bug.php?id=41593 और, मेरे लिए भी महत्वपूर्ण-एर, ** https: //bugs.php.net/bug.php? id = 60961 **। मुझे नहीं पता कि वास्तव में (और यदि) वे कैसे संबंधित हैं, लेकिन दुर्भाग्यवश PHP-FPM में इसकी छोटी परेशानी है। – Smuuf
मैं आपको थोड़ा सा कामकाज सुझा सकता हूं। यह php-fpm को ठीक नहीं करता है, लेकिन 200 का उत्तर देने में मदद करता है :) आपको केवल 2 बैकएंड के साथ nginx कॉन्फ़िगरेशन में 'अपस्ट्रीम' सेट अप करना है (यह कुछ ही php-fpm पूल हो सकता है)। इसलिए, यदि अनुरोधों में से कोई एक विफल रहता है, तो nginx फिर से बैकएंड का अनुरोध करने का प्रयास करेगा। –