উত্তর:
আমি দেখতে পেয়েছি যে যদি আপনি একই ব্যাকএন্ডের কয়েকশ উদাহরণ উপস্থাপন করেন তবে এনগিনেক্স প্রস্থান করার চেষ্টা করতে 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;
ধরে নিই যে এনগিনেক্স ৮০ পোর্টে চলমান রয়েছে, এটি লোকজনহস্ট: 8080 সাড়া না দেওয়া পর্যন্ত Nginx এর চারদিকে অনুরোধটি ক্রমাগত লুপ করার চেষ্টা করবে। অর্থাৎ শূন্য সেকেন্ড দেরি করে একটি অসীম (?) সংখ্যার বার চেষ্টা করুন।
আমি এখন আমার প্যাডেড সেলে ফিরে যাব ...
যদি আপনার এনজিনেক্স ইনস্টলেশনটিতে লুয়া সমর্থন থাকে তবে আপনি ঘুম পদ্ধতির সাথে কিছু সময়ের জন্য ক্লায়েন্টকে ধরে রাখতে পারেন। অপারেশনটি অবরুদ্ধ নয় এবং কর্মীকে লক করে না। মনে রাখবেন যে ব্যবহারকারীকে অন্য কোনও নেটওয়ার্ক সম্পর্কিত সকেট / ফায়ারওয়াল সময়সীমা অবশেষে ঘটতে পারে বলে অনন্তভাবে ধরে রাখা যায় না।
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
ওবুন্টুতে 17.04 রান করে এনজিঙ্ক্সে মডিউল ইনস্টল করতে:sudo apt-get install libnginx-mod-http-lua
আমি জানি সবচেয়ে কাছের জিনিসটি এই প্রকল্প , তবে আমি কখনই ব্যবহার করি না। আমি জানি যে বার্নিশের ব্যাকএন্ড চেকিং রয়েছে, সম্ভবত আপনি এটি একবার দেখতে চান।