Rumah >Operasi dan penyelenggaraan >Nginx >Penerangan terperinci tentang pemeriksaan kesihatan dan pemulihan kegagalan automatik pelayan Nginx

Penerangan terperinci tentang pemeriksaan kesihatan dan pemulihan kegagalan automatik pelayan Nginx

PHPz
PHPzasal
2023-08-05 23:40:443702semak imbas

Penerangan terperinci tentang pemeriksaan kesihatan dan pemulihan kegagalan automatik pelayan Nginx

Pengenalan:
Dalam aplikasi Internet hari ini, konkurensi yang tinggi dan ketersediaan yang tinggi adalah sangat penting. Untuk memastikan kestabilan sistem, kami perlu memantau dan menyemak kesihatan pelayan dan melakukan pemulihan kerosakan secara automatik. Artikel ini akan menerangkan secara terperinci cara menggunakan pelayan Nginx untuk pemeriksaan kesihatan dan pemulihan kegagalan automatik, dan memberikan contoh kod yang berkaitan.

  1. Prinsip pemeriksaan kesihatan Nginx
    Dalam fail konfigurasi Nginx, kita boleh mentakrifkan sekumpulan pelayan backend melalui modul huluan, dan Nginx akan memperuntukkan permintaan kepada pelayan yang berbeza mengikut algoritma tertentu. Semasa proses ini, Nginx boleh melaraskan pengedaran permintaan secara dinamik dengan menyemak kesihatan pelayan bahagian belakang. Terdapat dua kaedah pemeriksaan kesihatan yang biasa digunakan:

1.1 Pemeriksaan kesihatan aktif:
Nginx akan menghantar permintaan secara berkala ke pelayan bahagian belakang, dan kemudian menilai status kesihatan pelayan berdasarkan kod status yang dikembalikan. Jika kod status yang dikembalikan menunjukkan bahawa pelayan adalah normal, Nginx akan menambah pelayan ke senarai pelayan yang tersedia jika kod status yang dikembalikan menunjukkan bahawa pelayan tidak normal, Nginx akan mengalih keluar pelayan daripada senarai pelayan yang tersedia.

1.2 Pemeriksaan kesihatan pasif:
Apabila Nginx menghantar permintaan kepada pelayan bahagian belakang dan sambungan tamat masa atau permintaan gagal, Nginx akan menilai pelayan sebagai pelayan tidak tersedia dan mengeluarkannya daripada senarai pelayan yang tersedia. Apabila permintaan baharu tiba, Nginx akan cuba menyambung ke pelayan lain yang tersedia.

  1. Contoh konfigurasi pemeriksaan kesihatan Nginx
    Dalam fail konfigurasi Nginx, kita boleh menghidupkan fungsi pemeriksaan kesihatan melalui parameter health_check dalam modul huluan dan mengkonfigurasi item pemeriksaan kesihatan yang berkaitan. Berikut ialah konfigurasi sampel:

http {

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
    
    # 开启健康检查功能
    health_check;
    
    # 配置健康检查项
    health_check_timeout 3s;
    health_check_interval 10s;
    health_check_http_2xx;
    health_check_http_3xx;
}

server {
    listen 80;
    
    location / {
        proxy_pass http://backend;
    }
}

}

Dalam konfigurasi di atas, kami menentukan kumpulan huluan bernama backend dan mengkonfigurasi tiga pelayan backend. Dengan menetapkan parameter health_check kepada hidup, fungsi pemeriksaan kesihatan didayakan. Konfigurasi khusus item pemeriksaan kesihatan adalah seperti berikut:

  • health_check_timeout: Tetapkan tamat masa untuk pemeriksaan kesihatan.
  • health_check_interval: Tetapkan selang pemeriksaan kesihatan.
  • health_check_http_2xx: Apabila kod status yang dikembalikan ialah 2xx (seperti 200), ia bermakna pelayan adalah normal.
  • health_check_http_3xx: Apabila kod status yang dikembalikan ialah 3xx (seperti 301, 302), ia bermakna pelayan adalah normal.
  1. Contoh konfigurasi pemulihan kegagalan automatik Nginx
    Selain pemeriksaan kesihatan, Nginx juga menyediakan fungsi pemulihan kegagalan automatik. Apabila pelayan bahagian belakang dinilai tidak tersedia, Nginx akan mengalih keluarnya secara automatik daripada senarai pelayan yang tersedia dan melakukan pemeriksaan kesihatan sekali lagi selepas tempoh masa. Jika pelayan bahagian belakang melepasi pemeriksaan kesihatan, Nginx akan menambahkannya ke senarai pelayan yang tersedia sekali lagi untuk mencapai pemulihan kegagalan automatik. Berikut ialah contoh konfigurasi:

http {

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
    
    # 开启健康检查和自动故障恢复功能
    health_check;
    max_fails 3;
    fail_timeout 30s;
    
    # 配置健康检查项
    health_check_timeout 3s;
    health_check_interval 10s;
    health_check_http_2xx;
    health_check_http_3xx;
}

server {
    listen 80;
    
    location / {
        proxy_pass http://backend;
    }
}

}

Dalam konfigurasi di atas, kami menambah dua parameter, max_fails dan fail_timeout, untuk mengkonfigurasi fungsi pemulihan kegagalan automatik.

  • max_fails: Tetapkan bilangan kegagalan maksimum dalam tempoh masa tertentu (dinyatakan oleh parameter fail_timeout). Secara lalai, ia adalah 1 kali.
  • fail_timeout: Tetapkan tamat masa untuk pemulihan kegagalan.

Apabila bilangan kegagalan pelayan bahagian belakang mencapai nilai yang dikonfigurasikan oleh max_fails, Nginx akan mengalih keluar pelayan daripada senarai pelayan yang tersedia dan melakukan pemeriksaan kesihatan sekali lagi selepas tamat masa dikonfigurasikan oleh fail_timeout. Jika pelayan lulus pemeriksaan kesihatan, Nginx akan menambahkannya ke senarai pelayan yang tersedia sekali lagi.

Kesimpulan:
Pemeriksaan kesihatan dan fungsi pemulihan kerosakan automatik pelayan Nginx boleh meningkatkan kestabilan dan ketersediaan sistem dengan berkesan. Melalui contoh konfigurasi di atas, kami boleh mengkonfigurasi Nginx dengan mudah untuk melaksanakan pemeriksaan kesihatan dan fungsi pemulihan kegagalan automatik. Saya harap artikel ini akan membantu anda memahami dan menggunakan pemeriksaan kesihatan dan fungsi pemulihan kegagalan automatik pelayan Nginx.

Atas ialah kandungan terperinci Penerangan terperinci tentang pemeriksaan kesihatan dan pemulihan kegagalan automatik pelayan Nginx. 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