Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Penjelasan terperinci tentang reka bentuk seni bina pelayan Nginx dan pengoptimuman prestasi

Penjelasan terperinci tentang reka bentuk seni bina pelayan Nginx dan pengoptimuman prestasi

WBOY
WBOYasal
2023-08-05 21:34:481487semak imbas

Penjelasan terperinci reka bentuk seni bina pelayan Nginx dan pengoptimuman prestasi

Abstrak:
Nginx ialah perisian pelayan web berprestasi tinggi yang ringan dan digunakan secara meluas dalam laman web besar dan aplikasi Internet. Artikel ini akan memperkenalkan reka bentuk seni bina pelayan Nginx dan kaedah terperinci pengoptimuman prestasi, dengan contoh kod.

  1. Reka bentuk seni bina pelayan
    Nginx menggunakan seni bina berbilang proses dan dipacu peristiwa tak segerak, yang boleh menggunakan sepenuhnya kelebihan CPU berbilang teras dan meningkatkan keupayaan pemprosesan serentak sistem. Ia terbahagi kepada dua peringkat: Proses induk dan proses Pekerja.

1.1 Proses induk
Proses Induk ialah proses kawalan utama Nginx Ia bertanggungjawab untuk mengurus semua proses Pekerja dan mengendalikan pengedaran dan penjadualan permintaan HTTP. Secara khususnya, proses Master menyelesaikan tugas berikut:
1) Membaca dan menghuraikan fail konfigurasi, dan memulakan pelayan
2) Mulakan proses Pekerja dan berkomunikasi dengan proses utama
3) Pantau acara rangkaian dan terima sambungan daripada pelanggan Permintaan;
4) Edarkan permintaan kepada proses Pekerja yang berbeza.

1.2 Proses pekerja
Proses pekerja ialah proses kerja Nginx, bertanggungjawab untuk memproses permintaan dan respons HTTP tertentu. Setiap proses Pekerja berjalan secara bebas dan tidak mengganggu antara satu sama lain. Kerja utama proses Pekerja termasuk:
1) Terima permintaan yang diedarkan oleh proses Induk
2) Permintaan proses, termasuk mesej permintaan membaca, pengepala permintaan dan URL, dsb.
3) Memanggil modul yang berkaitan untuk memproses permintaan dan menjana laporan respons Teks
4) Hantar respons kepada pelanggan.

  1. Kaedah pengoptimuman prestasi
    Untuk meningkatkan lagi prestasi Nginx, kami boleh mengoptimumkan dari aspek berikut.

2.1 Optimumkan konfigurasi Nginx
Pengoptimuman prestasi Nginx bermula dengan mengoptimumkan fail konfigurasi. Terutamanya melibatkan aspek berikut:
1) parameter worker_processes: Tetapkan bilangan proses Worker, ditentukan mengikut bilangan teras CPU pelayan
2) Parameter worker_connections: Tetapkan bilangan maksimum sambungan serentak untuk setiap proses Worker, ditentukan; mengikut sumber perkakasan pelayan Pelarasan
3) parameter keepalive_timeout: Tetapkan tamat masa sambungan panjang untuk mengurangkan overhed penubuhan dan penutupan sambungan TCP yang kerap.

2.2 Menggunakan mekanisme caching
Nginx menyokong caching fail statik ke dalam memori untuk mengurangkan overhed IO cakera. Mekanisme caching boleh didayakan dengan mengkonfigurasi arahan Cache berikut:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;

2.3 Pengimbangan Beban
Nginx mempunyai fungsi pengimbangan beban terbina dalam, yang boleh dicapai dengan mengkonfigurasi huluan. Konfigurasi khusus adalah seperti berikut:

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

2.4 Hidupkan pemampatan Gzip
Menggunakan pemampatan Gzip boleh mengurangkan saiz mesej respons dan menjimatkan lebar jalur rangkaian. Mampatan Gzip boleh didayakan dengan mengkonfigurasi arahan Gzip berikut:

gzip on;
gzip_types text/plain text/css application/json;

2.5 Mengehadkan Semasa dan Mencegah Serangan DDoS
Nginx boleh mengehadkan bilangan sambungan serentak dan kekerapan permintaan pelanggan dengan mengkonfigurasi modul limit_conn dan limit_req untuk mengelakkan pelayan dimuatkan permintaan jahat Terlalu tinggi. Konfigurasi khusus adalah seperti berikut:

limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 10;
limit_req_zone $binary_remote_addr zone=addr:10m rate=10r/s;
limit_req zone=addr burst=20;

Kesimpulan:
Melalui reka bentuk seni bina pelayan yang munasabah dan kaedah pengoptimuman prestasi, prestasi dan kestabilan Nginx boleh dipertingkatkan dengan lebih baik dan perkhidmatan Web yang lebih baik boleh dicapai. Contoh kod yang ditunjukkan di atas boleh digunakan sebagai rujukan untuk projek sebenar untuk membantu pembangun lebih memahami dan menggunakan Nginx.

Rujukan:

  1. Dokumentasi Nginx [Dalam Talian]. : https://www.nginx.com/blog/scaling-nginx-load-balancing-microcaching-nginx/
  2. Prestasi Nginx [Dalam Talian]. /

Atas ialah kandungan terperinci Penjelasan terperinci tentang reka bentuk seni bina pelayan Nginx dan pengoptimuman prestasi. 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