किसी संपत्ति की सेवा करने से पहले मैं Nginx को कितने सेकंड इंतजार करने के लिए कहता हूं?


14

इसलिए जब मैं स्थानीय रूप से ऐसी चीज़ों का परीक्षण कर रहा हूँ जैसे कि मैं ऐप में लिख रहा हूँ, तो मैं अक्सर एक sleepस्टेटमेंट का उपयोग करके सर्वर साइड स्क्रिप्ट में देरी जोड़ना पसंद करता हूँ । यह धीमे कनेक्शन आदि का अनुकरण करने में मदद करता है।

क्या Nginx config में एक समान विलंब व्यवहार को सीधे निर्दिष्ट करने का एक तरीका है जो कि उस समतल HTML फ़ाइलों के लिए काम करेगा जो वह सेवा कर रही है?

मुझे पता है कि आप नेटवर्क स्तर पर एक समान देरी सिमुलेशन कर सकते हैं ( यहां देखें ) लेकिन यह बहुत गड़बड़ है और मेरे लिए कभी भी बहुत अच्छा काम नहीं किया है।


क्या आपको नहीं लगता कि यह नगीनक्स के साथ और भी अधिक गन्दा होगा?
ड्यूकियन

इन्हें भी देखें: stackoverflow.com/questions/14752943/…
sanmai

जवाबों:



3

मैं astlock के उत्तर में जोड़ना चाहूंगा कि यदि आप एक सादे के साथ उत्तर देना चाहते हैं returnतो ध्यान दें कि एक चेतावनी है: आपको एक मानक निर्देश का उपयोग करना है echo, एक देरी के साथ जवाब देने के लिए, इस तरह:returnecho_sleep

location = /slow-reply {
  echo_sleep 5.0;
  #return 200 'this response would NOT be delayed!';      
  echo 'this text will come in response body with HTTP 200 after 5 seconds';
}

(ओपनएस्टी / 1.7.10.2 पर परीक्षण किया गया)


0

आप इको मॉड्यूल का उपयोग कैसे कर सकते हैं, इसका अधिक विस्तृत विवरण देते हुए:

यदि आप एक बेसिक कॉन्फिगर से शुरू कर रहे हैं, जो स्टैटिक फाइल और PHP फाइल को कुछ इस तरह से लोड करता है:

location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_pass php;
}

फिर स्थैतिक और PHP दोनों अनुरोधों में देरी को जोड़ने के लिए इसे कुछ इस तरह परिवर्तित किया जा सकता है:

# Static files
location / {
    echo_sleep 5;
    echo_exec @default;
}
location @default {}

// PHP files
location ~ \.php$ {
    echo_sleep 5;
    echo_exec @php;
}
location @php {
    include fastcgi.conf;
    fastcgi_pass php;
}

यह स्पष्ट रूप से कुछ भी आप चाहते हैं के लिए संशोधित किया जा सकता है। मूल रूप से, प्रत्येक स्थान ब्लॉक को एक नामित @ स्थान में स्थानांतरित करें। फिर उपयोग करें echo_sleepऔर echo_execमूल स्थान ब्लॉक में।


-1

आप अनुरोध प्राप्त करने के लिए बैकएंड सर्वर सेट कर सकते हैं, फिर सर्वर में प्रतिक्रिया देने में देरी कर सकते हैं। Nginx बैकएंड सर्वर के लिए अनुरोध प्रॉक्सी।


-3

नगनेक्स से प्रतिक्रिया में देरी करने का कोई तरीका (IHMO) नहीं है। आपको इस तरह की सुविधा को सक्षम करने के लिए अपने वेबसर्वर को नहीं अपने आवेदन को फिर से काम करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.