PHP set_time_limit () का उपयोग कर nginx 504 गेटवे टाइमआउट को रोकें



Answers

इस link आज़माएं, इसे ठीक करने के तरीके पर इसका एक बेहतर समाधान है। तो कदम हैं:

  1. /etc/nginx निर्देशिका में स्थित अपनी nginx.conf फ़ाइल खोलें।
  2. इसे http { अनुभाग के तहत कोड के टुकड़े के नीचे जोड़ें:

    client_header_timeout 3000;
    client_body_timeout 3000;
    fastcgi_read_timeout 3000;
    client_max_body_size 32m;
    fastcgi_buffers 8 128k;
    fastcgi_buffer_size 128k;
    

    नोट: यदि यह पहले से मौजूद है, तो मानों को अनुसार बदलें।

  3. Nginx और php5-fpm को दोबारा लोड करें।

    $ service nginx reload
    $ service php5-fpm reload
    

    अगर त्रुटि बनी रहती है, तो मूल्यों को बढ़ाने पर विचार करें।

Question

मुझे nginx से 504 टाइमआउट संदेश मिल रहा है जब मेरी PHP स्क्रिप्ट सामान्य से अधिक लंबी चल रही है। set_time_limit(0) इसे रोकने के लिए प्रतीत नहीं होता है! क्या यह nginx पर php5-fpm चलाते समय काम नहीं करता है? यदि हां, तो समय सीमा निर्धारित करने का उचित तरीका क्या है?

त्रुटि:

504 Gateway Time-out
nginx/1.2.7



सही उत्तर आपके Nginx कॉन्फ़िगरेशन में fastcgi_read_timeout बढ़ रहा है।
इतना ही आसान!




आपको ngx_http_proxy_module अतिरिक्त nginx निर्देश ( ngx_http_proxy_module ) जोड़ने की आवश्यकता है, उदाहरण के लिए:

proxy_read_timeout 300;

असल में nginx proxy_read_timeout निर्देश प्रॉक्सी टाइमआउट को FcgidIOTimeout है, FcgidIOTimeout उन स्क्रिप्ट्स के लिए है जो बहुत लंबे समय तक शांत होते हैं, और FcgidBusyTimeout उन स्क्रिप्ट के लिए है जो निष्पादित करने में बहुत अधिक समय लेते हैं।

अगर आप फास्टसीजीआई एप्लीकेशन का उपयोग कर रहे हैं, तो इन विकल्पों को भी बढ़ाएं:

FcgidBusyTimeout 300
FcgidIOTimeout 250

फिर nginx और PHP5-FPM पुनः लोड करें।

Plesk

Plesk में, आप इसे अतिरिक्त nginx निर्देशों के तहत वेब सर्वर सेटिंग्स में जोड़ सकते हैं।

HTTP के लिए अतिरिक्त निर्देशों के तहत फास्टसीजीआई वेब सर्वर सेटिंग्स में जांचें।

देखें: Plesk में FastCGI टाइमआउट समस्याओं को कैसे ठीक करें?




Php-fpm या इसी तरह के प्रोसेस मैनेजर का उपयोग करते समय set_time_limit(0) का उपयोग करना बेकार है।

आपके निष्पादन समय समाप्ति को बढ़ाने के लिए, php-fpm का उपयोग करते समय set_time_limit का उपयोग नहीं करना है, इस tutorial जांचें।




Links