nginx স্বয়ংক্রিয় ব্যর্থতা লোড ভারসাম্য


29

লোডবালেন্সিংয়ের জন্য আমি এনগিনেক্স এবং এনগিনএক্সটিটিপি আপস্ট্রিম মডুল ব্যবহার করছি। আমার কনফিগারেশন খুব সহজ:

upstream lb {
    server 127.0.0.1:8081;
    server 127.0.0.1:8082;
}

server {
    listen  89;
    server_name localhost;

    location / {
            proxy_pass      http://lb;
            proxy_redirect  off;
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

তবে এই কনফিগারেশনের সাহায্যে, যখন 2 টি ব্যাকএন্ড সার্ভারের একটি ডাউন হয়, তখনও এনজিঙ্ক্স এটিতে অনুরোধ করে এবং এটি সময়ের অর্ধেকের পরিণতি ঘটে :(

যখন কোনও ডাউন সার্ভার সনাক্ত করে তখন অনুরোধটি অন্য সার্ভারে স্বয়ংক্রিয়ভাবে রুট করার জন্য এনগিনেক্স করার কোনও সমাধান রয়েছে?

ধন্যবাদ.

উত্তর:


33

আমি মনে করি যে এটি একই মেশিনে রয়েছে বলে এনজিনেক্স প্রবাহটি নিচে রয়েছে এটি সনাক্ত করছে না।

আপনি যে বিকল্পগুলির সন্ধান করছেন সেগুলি হ'ল : প্রক্সি_নেক্সট_আপস্ট্রিম এবং প্রক্সি_কনেক্ট_টাইমআউট

এটা চেষ্টা কর:

location / {
        proxy_pass              http://lb;
        proxy_redirect          off;
        proxy_next_upstream     error timeout invalid_header http_500;
        proxy_connect_timeout   2;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}

আমার অসম্পূর্ণ অ্যাপাচি / পিএইচপি সেটআপ (পিয়ার লাইব্রেরী ফাইলগুলি অনুপস্থিত) নিয়ে সমস্যা ছিল যা http 500 ত্রুটি ছুঁড়েছিল। প্রক্সি_নেক্সট_উপস্ট্রিমটি কেবলমাত্র অন্য মেশিনে আবার চেষ্টা করেছে - এটি ঠিক আছে।
আলিস্টার বুলম্যান

5
প্রক্সি_ডাইরেক্ট বন্ধ কেন?
Seun Osewa

2

আরে, দয়া করে উইকিটি দেখুন: http://wiki.nginx.org/NginxHttpUpstreamModule#server

মূলত যদি ব্যর্থতা ধরা পড়ে তবে ব্যাকএন্ডটি x সেকেন্ডের জন্য চিহ্নিত করা হবে এবং এটি আবার চেষ্টা করবে। সুতরাং আপনি যদি সংযোগগুলি দেখতে থাকেন তবে এটি সম্ভবত এনগিনেক্স যা ব্যাকএন্ড উপলব্ধ হয়েছে কিনা তা পরীক্ষা করে রাখে।

তবে এটিকে উপরের স্ট্রিমটিতে পরবর্তী প্রবেশের চেষ্টা করা উচিত, যাতে আপনি দেখতে পাবেন না যে কেবলমাত্র একটি নীচে থাকলে কোনও ব্যাক-এন্ড পাওয়া যায় না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.