जवाबों:
मैंने पाया कि यदि आप एक ही बैकेंड के सैकड़ों उदाहरण निर्दिष्ट करते हैं, तो निग्नेक्स ने ~ 2 सेकंड का समय निकाल लिया।
server localhost:8080 max_fails=0;
server localhost:8080 max_fails=0;
server localhost:8080 max_fails=0;
server localhost:8080 max_fails=0;
(.... एर, आवश्यकतानुसार दोहराएं!)
हां, एक भयावह कीचड़ - लेकिन यह तप की डिग्री को जोड़ता है ...
इससे भी बदतर, आप उपयोग कर सकते हैं:
server localhost:8080 max_fails=0;
server localhost:80 backup;
मान लें कि Nginx पोर्ट 80 पर चल रहा है, तो यह Nginx के आसपास के अनुरोध को स्थानीय स्तर पर लगातार लूप करने की कोशिश करेगा: 8080 तालाब। यानी शून्य सेकंड की देरी के साथ अनंत (?) की संख्या।
मैं अब अपने गद्देदार सेल में वापस आ जाऊंगा ...।
यदि आपके नगीनेक्स इंस्टॉलेशन में लुआ सपोर्ट है तो आप स्लीप मेथड के साथ कुछ समय के लिए क्लाइंट पर पकड़ बना सकते हैं। ऑपरेशन गैर-अवरुद्ध है और कार्यकर्ता को लॉक नहीं करता है। ध्यान रखें कि उपयोगकर्ता को असीम रूप से नहीं रखा जा सकता है क्योंकि कुछ अन्य नेटवर्क से संबंधित सॉकेट / फ़ायरवॉल टाइमआउट अंततः हो सकते हैं।
server {
listen 8502;
location / {
#25 seconds sleep
content_by_lua_block {
ngx.sleep(25);
ngx.exit(ngx.HTTP_BAD_GATEWAY);
}
}
}
फिर अपनी अपस्ट्रीम सूची में आपको क्लाइंट को रखने के लिए बैकअप के रूप में उपरोक्त सर्वर को जोड़ना होगा।
upstream backend {
server 127.0.0.1:3001 fail_timeout=2s; #The backend
server 127.0.0.1:8502 backup; #Lua holding server in the event backend is restarting
}
और यह आपके अनुमानित स्थान विनिर्देश में शामिल होना चाहिए:
proxy_read_timeout 30; #Value must be higher than sleep in Lua
proxy_next_upstream error timeout http_502 http_504;
lua
Ubuntu 17.04 रन पर नगनेक्स के लिए मॉड्यूल स्थापित करने के लिए:sudo apt-get install libnginx-mod-http-lua
निकटतम बात मुझे पता है कि यह परियोजना है , लेकिन मैंने कभी उपयोग नहीं किया। मुझे पता है कि वार्निश में बैकएंड चेकिंग है, शायद आप इस पर एक नज़र डालना चाहते हैं।