Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk mengehadkan kekerapan akses setiap unit masa dalam nginx

Bagaimana untuk mengehadkan kekerapan akses setiap unit masa dalam nginx

WBOY
WBOYke hadapan
2023-05-15 13:43:06774semak imbas

Pertama sekali, izinkan saya mengatakan bahawa saya menghadapi masalah ini kerana tapak web telah diserang dan Alibaba Cloud menghubungi polis saya terfikir untuk mengehadkan kekerapan akses dan bukannya mengehadkan alamat IP (pelan untuk mengehadkan alamat IP akan diberikan kemudian ). Kod status yang dikembalikan oleh nginx apabila sumber sambungan habis ialah 502. Selepas menambah sekatan penyelesaian ini, ia mengembalikan 599, yang berbeza daripada kod status biasa.
Langkahnya adalah seperti berikut:

Mula-mula tambah kandungan berikut pada nginx.conf:

map $http_x_forwarded_for  $clientrealip {
    "" $remote_addr;
    ~^(?p<firstaddr>[0-9\.]+),?.*$  $firstaddr;
    }

    ###safe setting to limit the request number per second
    limit_req_status 599;
    limit_req_zone $clientrealip zone=allips:70m rate=5r/s;

Saiz kumpulan sesi ialah 70m Jika terdapat banyak IP terhad, anda boleh melaraskannya lebih kecil. Jika terdapat sedikit IP yang terhad, Jika terdapat banyak IP yang boleh diakses, anda perlu meningkatkan bilangan
kepada 5 permintaan sesaat Ini juga diselaraskan mengikut situasi 5 adalah lebih sesuai atau lebih besar sedikit.

Kemudian ubah suai www.xxoo.com.conf (ini ialah fail konfigurasi lnmp untuk setiap hos maya Dalam pelayan, tambah baris berikut di atas lokasi:

limit_req zone=allips burst=5 nodelay;

Mulakan semula nginx dalam ini). cara. Anda boleh menulis skrip untuk menguji keselarasan.

Skrip serentak python disediakan seperti berikut:

import threading
import time,urllib2


url = &#39;http://sf.gg/&#39;
def worker():
  try:
   response = urllib2.urlopen(url)
   print response.getcode()
  except urllib2.httperror, e:
   print e.code

for i in range(2000):
  t = threading.thread(target=worker)
  t.start()

Antaranya, 2000 dan http://sf.gg/ boleh diubah suai, dan kemudian laksanakan python *.py > analisis keluar Kod status dalam fail diedarkan Jika 599 adalah perkara biasa, had kekerapan akan memainkan peranan.

Atas ialah kandungan terperinci Bagaimana untuk mengehadkan kekerapan akses setiap unit masa dalam nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam