Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Tafsiran terperinci tentang pengimbangan beban Nginx dan penyelesaian penggunaan ketersediaan tinggi

Tafsiran terperinci tentang pengimbangan beban Nginx dan penyelesaian penggunaan ketersediaan tinggi

WBOY
WBOYasal
2023-08-05 23:09:161283semak imbas

Penjelasan terperinci tentang pengimbangan beban Nginx dan penyelesaian penggunaan ketersediaan tinggi

Pengenalan:
Dalam aplikasi Internet hari ini, ketersediaan tinggi dan pengimbangan beban adalah elemen utama yang sangat diperlukan. Sebagai pelayan web sumber terbuka berprestasi tinggi dan pelayan proksi terbalik, Nginx digunakan secara meluas untuk membina seni bina aplikasi ketersediaan tinggi dan konkurensi tinggi. Artikel ini akan menerangkan pengimbangan beban Nginx dan penyelesaian penggunaan ketersediaan tinggi secara terperinci dan memberikan contoh kod yang sepadan.

1. Gambaran Keseluruhan Pengimbangan Beban
Pengimbangan beban adalah untuk mengagihkan trafik rangkaian ke berbilang pelayan untuk mencapai penggunaan sumber yang seimbang dan meningkatkan prestasi keseluruhan sistem. Nginx mencapai pengimbangan beban melalui fungsi proksi terbaliknya. Dalam Nginx, anda boleh menentukan kumpulan pelayan belakang dengan mengkonfigurasi huluan, dan Nginx akan mengedarkan permintaan kepada pelayan yang berbeza mengikut algoritma yang ditetapkan.

2. Algoritma pengimbangan beban yang biasa digunakan

  1. Pengundian (round-robin): Algoritma pengimbangan beban lalai mengedarkan permintaan kepada pelayan bahagian belakang dalam urutan.
  2. Weighted round-robin: Berat boleh dikonfigurasikan untuk setiap pelayan untuk mengagihkan permintaan secara berkadar.
  3. IP Hash: Pengiraan cincang dilakukan berdasarkan alamat IP klien, dan permintaan untuk IP yang sama diedarkan ke pelayan yang sama. Ia sesuai untuk aplikasi yang perlu mengekalkan sesi.
  4. Kurang bersambung: Edarkan permintaan kepada pelayan yang mempunyai bilangan sambungan semasa yang paling sedikit.
  5. URL Hash: Pengiraan cincang dilakukan berdasarkan URL yang diminta dan permintaan untuk URL yang sama diedarkan ke pelayan yang sama.

3. Contoh konfigurasi pengimbangan beban
Berikut ialah contoh konfigurasi pengimbangan beban Nginx yang mudah, menggunakan algoritma tinjauan pendapat untuk mengedarkan permintaan kepada tiga pelayan bahagian belakang:

http {
  upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
    server 192.168.1.103;
  }

  server {
    listen 80;

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

Dalam konfigurasi di atas, kami mentakrifkan tiga melalui huluan Alamat pelayan bahagian belakang. Dalam blok pelayan, konfigurasikan lokasi untuk memproksi permintaan kepada pelayan bahagian belakang. Secara lalai, Nginx menggunakan algoritma round-robin untuk mengedarkan permintaan ke pelayan belakang.

4. Penyelesaian penggunaan ketersediaan tinggi
Untuk memastikan ketersediaan sistem yang tinggi, kami boleh menggunakan Nginx menggunakan struktur tuan-hamba atau struktur sandaran panas.

  1. Struktur tuan-hamba (Aktif-Pasif)
    Dalam struktur tuan-hamba, terdapat pelayan induk yang bertanggungjawab untuk memproses semua permintaan, dan pelayan sandaran hanya akan mengambil alih permintaan apabila pelayan induk gagal. Penukaran automatik antara pelayan tuan dan hamba boleh dicapai melalui alat keepalived. Berikut ialah contoh konfigurasi struktur tuan-hamba:
http {
  upstream backend {
    server 192.168.1.101;
    server 192.168.1.102 backup;
  }

  server {
    listen 80;

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

Dalam konfigurasi di atas, kami menambah kata kunci sandaran selepas pelayan kedua, menunjukkan bahawa pelayan hanya akan menerima permintaan apabila pelayan utama tidak tersedia.

  1. Struktur sandaran panas (Aktif-Aktif)
    Dalam struktur sandaran panas, berbilang pelayan aktif dan memproses permintaan pada masa yang sama, dan pengagihan permintaan dicapai melalui pengimbangan beban lembut. Anda boleh menggunakan LVS (Linux Virtual Server) atau HAProxy untuk mencapai pengimbangan beban. Berikut ialah contoh konfigurasi struktur sandaran panas:
http {
  upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
  }

  server {
    listen 80;

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

Dalam konfigurasi di atas, kami menentukan dua pelayan bahagian belakang dan melaksanakan pengimbangan beban melalui huluan. Arahan ketersediaan tinggi boleh dicapai dengan mengkonfigurasi berbilang pelayan dan menggunakan algoritma pengimbangan beban.

Kesimpulan:
Nginx menyediakan pengimbangan beban yang berkuasa dan penyelesaian penggunaan ketersediaan tinggi Melalui konfigurasi yang munasabah, penggunaan sumber yang seimbang dan ketersediaan sistem yang tinggi boleh dicapai. Artikel ini menerangkan pengimbangan beban Nginx dan penyelesaian penggunaan ketersediaan tinggi secara terperinci dan menyediakan contoh kod yang sepadan. Saya harap pembaca boleh menggunakan panduan dan contoh dalam artikel ini untuk membina seni bina aplikasi yang tersedia tinggi dan berkonkurensi tinggi.

Atas ialah kandungan terperinci Tafsiran terperinci tentang pengimbangan beban Nginx dan penyelesaian penggunaan ketersediaan tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn