Bagaimana untuk melaksanakan konfigurasi had laju Nginx

王林
Lepaskan: 2023-11-08 21:22:55
asal
1270 orang telah melayarinya

Bagaimana untuk melaksanakan konfigurasi had laju Nginx

Cara melaksanakan konfigurasi had laju Nginx memerlukan contoh kod khusus

Nginx, sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, selalunya perlu mengawal kelajuan antara muka atau sumber tertentu dalam aplikasi praktikal dan keadilan sistem. Berikut akan memperkenalkan cara melaksanakan kawalan had laju melalui fail konfigurasi Nginx, dan melampirkan contoh kod tertentu.

  1. Mentakrifkan kawasan had laju dalam fail konfigurasi
    Pertama, anda perlu menentukan kawasan had laju dalam fail konfigurasi Nginx untuk menyimpan dan mengurus maklumat berkaitan had laju. Buka fail konfigurasi Nginx (biasanya nginx.conf atau sites-available/default) dan tambahkan konfigurasi berikut dalam modul http:
http { ... limit_req_zone $binary_remote_addr zone=rate_limit:10m rate=10r/s; ... }
Salin selepas log masuk

Dalam konfigurasi di atas,limit_req_zonedigunakan untuk menentukan kelajuan had Kawasan, di mana$binary_remote_addrbermaksud mengehadkan kelajuan berdasarkan alamat IP klien Parameterzonemenentukan nama kawasan had laju sebagai rate_limit, dan10m<. /code> bermaksud Saiz memori kawasan terhad kadar ialah 10MB dan parameter ratemenyatakan bahawa bilangan maksimum permintaan yang dibenarkan ialah 10 sesaat.limit_req_zone用于定义一个限速区域,其中$binary_remote_addr表示根据客户端IP地址进行限速,zone参数指定了限速区域的名称为rate_limit,10m表示限速区域的内存大小为10MB,rate参数指定了允许的最大请求数量是每秒10个。

  1. 配置文件中应用限速
    接下来,在配置文件中需要对具体的接口或资源进行限速控制。打开配置文件,在server块内添加以下配置:
server { ... location /api/limited { limit_req zone=rate_limit burst=20 nodelay; ... } ... }
Salin selepas log masuk

在以上配置中,location指令表示限速控制应用于路径为/api/limited的URL。limit_req指令用于设置限速规则,其中zone参数指定了使用前面定义的限速区域rate_limit,burst参数表示在超过限速后允许的最大请求数量,nodelay

    Gunakan had laju dalam fail konfigurasi
      Seterusnya, anda perlu mengawal had laju untuk antara muka atau sumber tertentu dalam fail konfigurasi. Buka fail konfigurasi dan tambahkan konfigurasi berikut dalam blok pelayan:

    1. sudo service nginx reload
      Salin selepas log masuk
    2. Dalam konfigurasi di atas, arahan lokasimenunjukkan bahawa kawalan had kadar harus digunakan pada URL dengan laluan /api /terhad. Perintah limit_reqdigunakan untuk menetapkan peraturan had laju Parameter zonemenentukan penggunaan parameter kadar_had kelajuan yang ditetapkan sebelum ini menunjukkan bahawa had laju akan dilampaui apabila melebihi had Bilangan maksimum permintaan yang dibenarkan selepas had laju Parameter nodelaymenunjukkan sama ada untuk mengembalikan ralat dengan segera untuk permintaan yang melebihi had laju.

    Muat semula konfigurasi Nginx dan ujian

    Selepas melengkapkan konfigurasi di atas, simpan fail konfigurasi dan muat semula konfigurasi Nginx untuk menjadikan tetapan berkuat kuasa. Anda boleh menggunakan arahan berikut untuk memuatkan semula konfigurasi Nginx:

    ab -n 1000 -c 100 http://your-domain.com/api/limited
    Salin selepas log masuk
    Kemudian anda boleh menggunakan alatan untuk menguji, mensimulasikan permintaan serentak dan mengesahkan kesan pengehadan kelajuan. Anda boleh menggunakan alatan seperti ab (ApacheBench) atau wrk untuk ujian, contohnya: rrreeeArahan di atas bermaksud menghantar 1000 permintaan serentak, 100 permintaan serentak setiap kali dan URL akses ialah http://your-domain.com /api/limited . Dengan melihat keputusan ujian yang dikembalikan, anda boleh mengesahkan ketepatan konfigurasi had laju. Di atas adalah langkah-langkah tentang cara melaksanakan konfigurasi had laju melalui Nginx Dengan menentukan kawasan had laju dan menggunakan peraturan had laju, anda boleh mengawal kelajuan akses antara muka atau sumber dengan berkesan dan mengekalkan kestabilan dan keadilan sistem. Semoga kandungan di atas dapat membantu anda!

    Atas ialah kandungan terperinci Bagaimana untuk melaksanakan konfigurasi had laju 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
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!