Optimumkan prestasi rangkaian pengimbangan beban Nginx

王林
Lepaskan: 2023-10-15 11:18:01
asal
1352 orang telah melayarinya

Optimumkan prestasi rangkaian pengimbangan beban Nginx

Mengoptimumkan prestasi rangkaian pengimbangan beban Nginx

Pengenalan:
Nginx telah menjadi pelayan proksi terbalik sumber terbuka yang sangat popular Ia mempunyai prestasi cemerlang apabila mengendalikan permintaan serentak yang tinggi. Untuk mengoptimumkan lagi prestasi rangkaian pengimbangan beban Nginx, artikel ini akan memperkenalkan beberapa contoh kod dan teknik konfigurasi khusus.

1. Konfigurasikan keepalive
Tambahkan kod berikut pada fail konfigurasi Nginx:

http {
    keepalive_timeout 65;
    keepalive_requests 100000;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
}
Salin selepas log masuk

Konfigurasi ini akan mengekalkan sambungan yang panjang antara pelayan bahagian belakang dan Nginx, jadi bahawa Tidak ada keperluan untuk mewujudkan semula sambungan untuk setiap permintaan, yang mengurangkan overhed jabat tangan TCP dan meningkatkan prestasi.

2. Gunakan caching
Tambah kod berikut pada fail konfigurasi Nginx:

http {
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
    proxy_temp_path /path/to/temp;
    proxy_cache_key $scheme$proxy_host$request_uri;
 
    server {
        location / {
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            proxy_cache_use_stale error timeout http_502;
            proxy_pass http://backend;
        }
    }
}
Salin selepas log masuk

Konfigurasi ini membolehkan fungsi caching Nginx dan menyimpan tindak balas belakang -end server Pada cakera tempatan, permintaan yang sama boleh diperolehi terus daripada cache pada masa akan datang, mengurangkan akses kepada pelayan back-end dan meningkatkan prestasi.

3 Gunakan algoritma pengimbangan beban
Tambahkan kod berikut pada fail konfigurasi Nginx:

http {
    upstream backend {
        least_conn;
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }
 
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}
Salin selepas log masuk

Konfigurasi ini mengedarkan permintaan kepada berbilang pelayan bahagian belakang, menggunakan The least_conn algoritma melaksanakan pengimbangan beban dan memilih permintaan pemajuan berdasarkan bilangan sambungan ke pelayan, menjadikan beban setiap pelayan lebih seimbang dan meningkatkan prestasi.

4. Optimumkan tetapan TCP/IP
Dalam parameter kernel sistem pengendalian, mengoptimumkan TCP/IP boleh meningkatkan prestasi rangkaian pengimbangan beban Nginx. Parameter berikut boleh ditetapkan dengan mengubah suai fail /etc/sysctl.conf:

net.core.somaxconn = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 65536
Salin selepas log masuk

Maksud dan fungsi parameter ini boleh dirujuk kepada dokumen yang berkaitan Dengan melaraskan parameter ini, prestasi TCP /Timbunan protokol IP boleh dipertingkatkan, dengan itu Meningkatkan prestasi rangkaian pengimbangan beban Nginx.

Kesimpulan:
Melalui konfigurasi dan pengoptimuman di atas, prestasi rangkaian pengimbangan beban Nginx boleh dipertingkatkan lagi. Sudah tentu, konfigurasi dan pengoptimuman khusus perlu diselaraskan mengikut situasi sebenar, dan alat pemantauan boleh digunakan untuk ujian dan pengoptimuman prestasi. Hanya dengan mempertimbangkan secara menyeluruh semua aspek konfigurasi perkakasan, rangkaian dan perisian anda boleh memperoleh prestasi pengimbangan beban Nginx yang terbaik. Saya berharap kandungan artikel ini dapat membantu pembaca.

Atas ialah kandungan terperinci Optimumkan prestasi rangkaian pengimbangan beban Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!