Rumah >Operasi dan penyelenggaraan >Nginx >Bagaimana untuk mengkonfigurasi had semasa pembelian tergesa-gesa Nginx
Kod adalah seperti berikut:
limit_req_zone $server_name zone=sname:10m rate=1r/s; #限制服务器每秒只能有一次访问成功 #limit_req_zone $binary_remote_addr zone=one:3m rate=1r/s; #限制ip,每秒只能访问一次 #limit_req_zone $binary_remote_addr $uri zone=two:3m rate=1r/s; #限制ip和路径不带参数, #limit_req_zone $binary_remote_addr $request_uri zone=thre:3m rate=1r/s; #限制ip和带参数的路径 server { listen 80; server_name www.abc.com; location / { include host/proxy.cnf; proxy_pass http://backend; } location /api/createorder { limit_req zone=sname; #不带突发,只能有一次正常请求 limit_req_status 503; #设置返回的状态码是503 #limit_req zone=sname burst=5 nodelay; #最大并发是5,并且实时处理 include host/proxy.cnf; proxy_pass http://backend; error_page 503 =200 /50x.html; #这里很重要,可以将错误的状态码503,返回结果的时候是200 } location = /50x.html { if ($http_user_agent ~* "mobile|android|iphone|iphone|ios|ios"){ #default_type application/json; return 200 '{"msg": "活动过于火爆,请稍后重试!","data": {},"code": -1}'; #设置移动端返回错误的信息显示 } root html; #如果是pc端返回一个html页面 } }
Isi penting: Dalam keadaan biasa, jika had semasa ditetapkan, kod status pemulangan ialah 503. Untuk terminal mudah alih, walaupun anda mengembalikan json data, klien Pada masa ini, saya bijak menetapkan kod status kepada 200 melalui error_page 403 =200 /50x.html;
Di atas hanya menggunakan ngx_limit_req_module, dan modul ngx_limit_conn_module juga boleh digunakan.
Terutama jika sesetengah tapak web perunding disasarkan oleh perangkak, pelayan mungkin dibunuh oleh perangkak (ini adalah kes untuk tapak web kecil)
Jadi apa yang perlu kita lakukan untuk melakukannya
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi had semasa pembelian tergesa-gesa Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!