원래 구성:
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; ...... }}
화이트리스트 구성:
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; ...... }}
설명:
geo 지시문은 화이트리스트 $whiteiplist를 정의하며 기본값은 1이며 모두 제한됩니다. 클라이언트 IP가 화이트리스트에 나열된 IP와 일치하는 경우 $whiteiplist 값은 0이며 이는 제한되지 않음을 의미합니다.
map 명령은 제한된 IP인 $whiteiplist 값 1을 클라이언트 IP에 매핑합니다. 화이트리스트 IP인 $whiteiplist 값 0을 빈 문자열에 매핑합니다.
null 값이 있는 키에 대해서는limit_conn_zone 및limit_req_zone 명령이 무시되므로 나열된 IP에 제한이 없습니다.
위 내용은 geo 모듈을 통해 Nginx에서 화이트리스트를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!