Konfigurasi asal:
http { ......
limit_conn_zone $binary_remote_addr zone=one:10m; limit_req_zone $binary_remote_addr zone=fifa:10m rate=5r/s;
...... server { ...... limit_conn one 5; limit_req zone=fifa burst=100; ...... }}
Konfigurasi senarai putih:
http { ......
geo $whiteiplist { default 1; 127.0.0.1 0; 10.10.0.0/24 0; } map $whiteiplist $limit { 1 $binary_remote_addr; 0 ""; } limit_conn_zone $limit zone=one:10m; limit_req_zone $limit zone=fifa:10m rate=5r/s;
...... server { ...... limit_conn one 5; limit_req zone=fifa burst=100; ...... }}
Penerangan:
arahan geo mentakrifkan senarai putih $whiteiplist, nilai lalai ialah 1, semuanya dihadkan. Jika IP klien sepadan dengan IP yang disenaraikan dalam senarai putih, nilai $whiteiplist ialah 0, yang bermaksud ia tidak terhad. Arahan peta memetakan nilai $whiteiplist 1, iaitu IP terhad, kepada IP klien. Petakan nilai $whiteiplist 0, iaitu IP senarai putih, kepada rentetan kosong. Arahan limit_conn_zone dan limit_req_zone akan diabaikan jika kunci adalah nilai nol, dengan itu tidak mencapai had pada IP yang disenaraikan.Atas ialah kandungan terperinci Bagaimana untuk menetapkan senarai putih dalam Nginx melalui modul geo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!