Apabila pelanggan berinteraksi dengan pelayan, terdapat ralat reka bentuk pemasaan, yang menyebabkan pelayan menerima lebih daripada 300,000 permintaan dalam masa 10 minit Tekanan pada bahagian belakang PHP meningkat serta-merta dan menyebabkan ia runtuh.
Dalam penyelesaian semasa, memandangkan permintaan berulang dalam tempoh masa yang singkat memperoleh kandungan yang sama, permintaan dengan parameter khas digugurkan terus pada lapisan Nginx dan tiada hasil dikembalikan secara langsung.
Kod adalah seperti berikut
shell
if ( $query_string ~ "api=(getpush|remove)") { return 200 '{"resultStatus":1,"allCount":0,"data":[]}'; break; }
Penyelesaian ini mempunyai ketidaksempurnaan, seperti hanya melarang 90% permintaan, atau hanya berkuat kuasa dalam masa yang ditetapkan Saya tertanya-tanya sama ada pelajar mempunyai penyelesaian anti-serangan yang serupa?
Anda boleh mempertimbangkan untuk menggunakan huluan, menetapkan berat dan memindahkan 90% permintaan ke antara muka palsu
baik, buat sendiri
nginx+lua=openresty