Rumah > Artikel > Operasi dan penyelenggaraan > Cara menggunakan nginx untuk melaksanakan pengehadan arus teragih
1. Prakata
Secara amnya, sistem yang terdedah kepada dunia luar akan menerima sejumlah besar permintaan semasa promosi atau serangan penggodam untuk melindungi sistem daripada ditenggelami oleh trafik serentak tinggi yang tiba serta-merta, , anda perlu mengehadkan arus.
2. Mula-mula gunakan program yang mendedahkan antara muka kepada dunia luar
Apa yang saya gunakan di sini ialah projek but musim bunga, yang didedahkan seperti berikut 🎜>
Letakkan atur cara ini ke pelayan Linux. Langkah-langkah penggunaannya tidak Sekali lagi, anda boleh menggunakannya sendiri dengan but spring BaiduSaya ingin mengesyorkan kumpulan pembelajaran dan pertukaran seni bina kepada semua orang. Nombor kumpulan komunikasi dan pembelajaran: 575745314. Ia akan berkongsi beberapa video yang dirakam oleh arkitek kanan: spring, mybatis, analisis kod sumber netty, prinsip keselarasan tinggi, prestasi tinggi, teragih, seni bina perkhidmatan mikro, pengoptimuman prestasi jvm, seni bina teragih, dll. Ini telah menjadi sistem pengetahuan yang diperlukan untuk arkitek. Anda juga boleh menerima sumber pembelajaran percuma dan mendapat banyak manfaat setakat ini
3 Cipta fail konfigurasi nginx bernama nginx.conf
Buat fail konfigurasi bernama nginx.conf, kandungan lengkapnya adalah seperti berikut
Penjelasan bahagian pengehad semasa dalam fail konfigurasi:
Seperti di atas, Konfigurasi mengehadkan semasa nginx hanya mempunyai dua baris kod.Baris pertama:
limit_req_zone: ialah pernyataan mengehadkan semasa.
$ binary_remote_addr: bermaksud untuk mengehadkan arus berdasarkan IP klien Sebagai contoh, konfigurasi pengehad semasa di atas mengehadkan kekerapan permintaan setiap IP pelanggan kepada sekali sesaat semasa akan dihadkan dan ralat http 503 akan dikembalikan
zone=perip: bermakna menggunakan perip nama untuk mengenal pasti baris konfigurasi pengehad arus ini akan dirujuk dengan nama perip kemudian (iaitu, konfigurasi pengehad semasa boleh ditakrifkan Untuk berbilang)
10m: bermakna ruang untuk menyimpan IP klien ialah 10mb, 1mb boleh menyimpan lebih daripada 10,000 ips, 10mb boleh menyimpan lebih daripada 100,000 ips, penjelasan rujukan: ... Dalam artikel ini Cari binary_remote_addr untuk mencari penjelasan yang berkaitan rate=1r/s: Menunjukkan bahawa kekerapan adalah satu permintaan sesaat >Barisan kedua:bermaksud bahawa pada kluster myserver, gunakan konfigurasi pengehad semasa bernama perip
4Tukar nginx.conf yang dibuat dalam fail Konfigurasi langkah sebelumnya, salin ke direktori linux, /root/nginx/ (direktori boleh sewenang-wenangnya), dan kemudian gunakan arahan docker untuk menggunakan persekitaran nginx
Port 8080 didedahkan di sini Nod pengimbangan beban dalam konfigurasi nginx boleh diakses melalui port 8080, iaitu ip 192.168.10.253:8090. Port. Port ip ini sepadan dengan program hello world yang dibuat dan digunakan dalam langkah pertama Gunakan kod untuk mengakses antara muka helloworld yang ketiga ditakrifkan dalam satu langkah
Di sini saya melaksanakan 10 mendapatkan permintaan sesaat, yang sudah lebih besar daripada kadar=1r/s yang dikonfigurasikan dalam nginx, yang meminta sekali sesaat Jadi anda akan melihat ralat 503, seperti berikut.
Jika anda menukar kod dan melaksanakan permintaan get sekali sesaat, tiada ralat akan dilaporkan Anda boleh mencubanyaAtas ialah kandungan terperinci Cara menggunakan nginx untuk melaksanakan pengehadan arus teragih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!