Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Penjelasan terperinci tentang ketersediaan tinggi dan prinsip reka bentuk toleransi kesalahan pelayan Nginx

Penjelasan terperinci tentang ketersediaan tinggi dan prinsip reka bentuk toleransi kesalahan pelayan Nginx

WBOY
WBOYasal
2023-08-26 19:31:451589semak imbas

Penjelasan terperinci tentang ketersediaan tinggi dan prinsip reka bentuk toleransi kesalahan pelayan Nginx

Penjelasan terperinci tentang ketersediaan tinggi dan prinsip reka bentuk toleransi kesalahan pelayan Nginx

Dengan peningkatan kerumitan sistem komputer dan peningkatan permintaan untuk ketersediaan yang tinggi dan toleransi kesalahan, ia menjadi sangat penting untuk mereka bentuk pelayan yang stabil dan boleh dipercayai . Nginx ialah pelayan web sumber terbuka berprestasi tinggi, serta pelayan proksi terbalik, pengimbang beban dan pelayan cache HTTP. Prinsip dan ciri reka bentuk Nginx membolehkannya mempunyai ketersediaan tinggi yang sangat baik dan toleransi kesalahan. Artikel ini akan memperkenalkan prinsip reka bentuk ketersediaan tinggi dan toleransi kesalahan pelayan Nginx secara terperinci dan memberikan beberapa contoh kod.

1. Prinsip reka bentuk ketersediaan tinggi
Ketersediaan tinggi bermakna sistem mengekalkan ketersediaan jangka panjang, iaitu, ia masih boleh memberikan perkhidmatan biasa dalam menghadapi pelbagai kegagalan dan situasi tidak normal. Berikut ialah beberapa prinsip reka bentuk untuk mencapai ketersediaan tinggi:

  1. Load Balancing
    Fungsi imbangan beban Nginx boleh mengedarkan permintaan kepada berbilang pelayan bahagian belakang untuk meningkatkan kapasiti beban pelayan. Nyatakan alamat dan berat pelayan hujung belakang dengan mengkonfigurasi huluan seperti berikut:
http {
    upstream backend {
        server backend1.example.com weight=5;
        server backend2.example.com;
        server backend3.example.com down;
    }

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

Dalam konfigurasi di atas, berat beban backend1 ialah 5, berat beban backend2 ialah 1 dan backend3 ditandakan sebagai luar talian. Nginx mengedarkan permintaan kepada pelayan bahagian belakang yang berbeza berdasarkan dasar seperti berat dan pemeriksaan kesihatan. Strategi pengimbangan beban ini boleh meningkatkan ketersediaan sistem dan pemprosesan.

  1. Failover
    Nginx menyokong fungsi failover Apabila pelayan bahagian belakang turun atau gagal, permintaan boleh dimajukan secara automatik ke pelayan bahagian belakang biasa yang lain. Tentukan pelayan sandaran dengan menggunakan parameter sandaran, seperti yang ditunjukkan di bawah:
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com backup;
    }

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

Dalam konfigurasi di atas, apabila backend1 tidak tersedia, permintaan akan dimajukan ke backend2 server sandaran. Strategi failover ini boleh meningkatkan ketersediaan sistem dan toleransi kesalahan.

  1. Pemeriksaan Kesihatan Pantas
    Nginx boleh menentukan ketersediaan pelayan bahagian belakang dengan melakukan pemeriksaan kesihatan pantas untuk mengesan kerosakan atau keabnormalan tepat pada masanya. Konfigurasikan tamat masa pemeriksaan kesihatan dengan menetapkan parameter tamat masa_semak_kesihatan, seperti berikut:
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com check interval=5s fail_timeout=3s;
    }

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

Dalam konfigurasi di atas, pemeriksaan kesihatan akan dilakukan pada bahagian belakang2 setiap 5 saat Jika 3 pemeriksaan berturut-turut gagal, hujung belakang2 dianggap tidak tersedia . Strategi pemeriksaan kesihatan pantas ini boleh meningkatkan ketersediaan sistem dan keupayaan menyelesaikan masalah.

2. Prinsip Reka Bentuk Toleransi Kesalahan
Toleransi kerosakan merujuk kepada keupayaan sistem untuk mengendalikan ralat dan pengecualian, dan untuk mengekalkan operasi normal apabila menghadapi kerosakan atau keadaan tidak normal. Berikut ialah beberapa prinsip reka bentuk untuk mencapai toleransi kesalahan:

  1. Konfigurasi halaman ralat
    Nginx boleh mengendalikan beberapa keadaan ralat biasa dengan mengkonfigurasi halaman ralat, seperti tamat masa sambungan, halaman tidak wujud, dsb. Tentukan laluan halaman ralat dengan mengkonfigurasi error_page, seperti yang ditunjukkan di bawah:
http {
    server {
        ...
        error_page 404 /404.html;
        error_page 502 /502.html;
        ...
    }
}

Dalam konfigurasi di atas, apabila ralat 404 berlaku, Nginx akan mengubah hala ke halaman /404.html apabila ralat 502 berlaku, ia akan mengubah hala ke halaman /502.html. Konfigurasi halaman ralat ini boleh meningkatkan pengalaman pengguna dan toleransi kesalahan sistem.

  1. Pengendalian permintaan yang tidak normal
    Nginx boleh mengehadkan saiz permintaan dengan mengkonfigurasi client_max_body_size untuk mengelakkan serangan berniat jahat atau permintaan abnormal daripada menyebabkan pelayan ranap. Tentukan direktori fail sementara dengan menetapkan client_body_temp_path untuk menyimpan fail sementara untuk permintaan yang terlalu besar, seperti ditunjukkan di bawah:
http {
    client_max_body_size 10m;
    client_body_temp_path /path/to/temp/files;
    ...
}

Dalam konfigurasi di atas, saiz permintaan dihadkan kepada 10MB, permintaan yang melebihi had akan ditolak dan sementara fail akan disimpan dalam direktori yang ditentukan. Strategi pengendalian permintaan yang tidak normal ini boleh meningkatkan keselamatan dan toleransi kesalahan sistem.

  1. Ralat Log
    Nginx boleh merekod ralat dan maklumat pengecualian dengan mengkonfigurasi log ralat untuk penyelesaian masalah dan lokasi masalah. Tentukan laluan dan tahap log ralat dengan menetapkan parameter error_log, seperti yang ditunjukkan di bawah:
error_log /path/to/error.log error;

Dalam konfigurasi di atas, log ralat akan direkodkan ke fail yang ditentukan, dan hanya maklumat ralat dengan ralat tahap akan direkodkan. Strategi pengelogan ralat ini boleh menyediakan penyelesaian masalah sistem dan keupayaan pengesanan masalah.

Ringkasan:
Prinsip reka bentuk toleransi kesalahan dan ketersediaan tinggi Nginx termasuk pengimbangan beban, failover, semakan kesihatan pantas, konfigurasi halaman ralat, pengendalian permintaan pengecualian dan pengelogan ralat, dsb. Dengan mengikuti prinsip reka bentuk ini dan mengkonfigurasi serta melaraskan berdasarkan keadaan sebenar, kestabilan dan kebolehpercayaan pelayan Nginx boleh dipertingkatkan dengan ketara. Apabila mereka bentuk dan menggunakan pelayan, adalah penting untuk mempertimbangkan ketersediaan yang tinggi dan toleransi kesalahan untuk memastikan sistem dapat mengekalkan operasi normal di bawah pelbagai keadaan tidak normal.

Atas ialah kandungan terperinci Penjelasan terperinci tentang ketersediaan tinggi dan prinsip reka bentuk toleransi kesalahan 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

Artikel berkaitan

Lihat lagi