লোড ব্যালেন্সিং ছাড়াই এনগিনেক্স ফেইলওভার


13

Nginx কনফিগার করতে আমার সমস্যা হচ্ছে।

আমি বিপরীত প্রক্সি হিসাবে nignx ব্যবহার করছি। আমি আমার সমস্ত অনুরোধ আমার প্রথম সার্ভারে প্রেরণ করতে চাই। যদি প্রথম সার্ভারটি নিচে থাকে তবে আমি দ্বিতীয় সার্ভারে অনুরোধগুলি প্রেরণ করতে চাই।

সংক্ষেপে, লোড ব্যালেন্সিং ছাড়াই আমি কীভাবে একটি ব্যর্থভার সমাধান করতে পারি?

উত্তর:


13

আপনি যা চান তা একটি সক্রিয় + প্যাসিভ সেটআপ। আপনাকে যাওয়ার জন্য এখানে এনগিনেক্স কনফার্ট স্নিপেটের একটি উদাহরণ রয়েছে:

upstream backend {
    server 1.2.3.4:80 fail_timeout=5s max_fails=3;
    server 4.5.6.7:80 backup;
}

server {
    listen 80;
    server_name whatevs.com;

    location / {
        proxy_pass http://backend;
    }
}

সুতরাং, 'সাধারণভাবে', সমস্ত অনুরোধগুলি 1.2.3.4 এ হোস্টে যাবে। আমরা যদি সেই বাক্সে তিনটি ব্যর্থতা পাই তবে 4.5.5.7 এর উপরে নেবে।


আপনার যদি একাধিক ব্যাকআপ থাকে?
বেনি বোটিমা

0

এনগিনেক্সে লোড ব্যালেন্সিং খুব সহজ আমরা কেবলমাত্র প্রবাহের স্কোপে সার্ভারের নামগুলি কনফিগার করছি, যেখানে আমরা ভারসাম্য রক্ষার জন্য সার্ভারের তালিকাটি লিখি।
ডিফল্টরূপে লোড ব্যালেন্সিংয়ের জন্য এনগিনেক্স বিভিন্ন অ্যালগরিদম সমর্থন করে এটি গোলাকার রবাইন, তবে আমরা এটিকে ip_hash এর মতো বিভিন্ন কী দিয়ে কনফিগার করি ...

http{
 upstream servername{
    ip_hash//for sticky hash
    least_conn//FOR least connection 
    sever localhost:1001;
    sever localhost:1002;
    sever localhost:1003;
}

0

Chrskly এর উত্তর প্রসারিত করে আপনি 3 টি পতাকা / কনফিগার করতে চাইতে পারেন।

  1. ব্যর্থ_কালীন সময়: ব্যর্থ প্রচেষ্টা দ্বারা মোট সময় এবং একই সময়ের জন্য সার্ভারকে ডাউন হিসাবে চিহ্নিত করে। যদি 5 সেকেন্ড হয়, তবে 5 সেকেন্ডে সর্বোচ্চ_ফায়াল চেষ্টা করা হবে এবং এখনও যদি ব্যর্থ হয় তবে সেই সার্ভারটি 5 সেকেন্ডের জন্য ডাউন হিসাবে চিহ্নিত করুন।
  2. সর্বাধিক_ফল : চেষ্টা সর্বোচ্চ সংখ্যা
  3. প্রক্সি_সংযোগ_টাইমআউট : কোনও সংযোগের জন্য অপেক্ষা করার সময়।

জিআরপিসির উদাহরণ অনুসরণ করে, যদি প্রধান সার্ভারটি 7 সেকেন্ডের সাথে সংযুক্ত করা যায় না, তবে ব্যাকআপে স্যুইচ করুন এবং প্রধান সার্ভারটি 6000s হিসাবে চিহ্নিত করুন:

upstream grpcservers {
    server 192.168.0.XX:9997 fail_timeout=6000s max_fails=1;  # After 1 fail in 6000s, Main server is marked unavailable for 6000s.
    server 192.168.0.XX:9999 backup;
        } 
location / {
            grpc_pass grpc://grpcservers;
            grpc_connect_timeout 7s;  # If conn cant be made in 7sec, switch to backup
        }

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