Example of Nginx setting whitelist through geo module
Original configuration:
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;......}}
Whitelist configuration:
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;......}}
Description:
The geo directive defines a whitelist $whiteiplist, with a default value of 1, all restricted. If the client IP matches a whitelisted IP, the $whiteiplist value is 0, which means unrestricted.
The map directive maps $whiteiplist values of 1, i.e. restricted IPs, to client IPs. Map the $whiteiplist value of 0, that is, the whitelist IP, to an empty string.
The limit_conn_zone and limit_req_zone directives are ignored for keys with null values, thus implementing no restrictions on listed IPs.
The above example of Nginx setting up a whitelist through the geo module is all the content shared by Xiaobian to everyone. I hope I can give you a reference and hope that you will support it a lot.