我知道了头CF-Connecting-IP,$binary_remote_addr,http_x_forwarded_for
我想做一个设置:
limit_req_zone $http_x_forwarded_for zone=k_request_limit_per_ip:10m rate=400r/s;
limit_conn_zone $http_x_forwarded_for zone=k_connection_limit_per_ip:10m;
Run Code Online (Sandbox Code Playgroud)
但是 Cloudflare 并不是唯一要访问这台机器的地方,所以我也想限制直接访问。有没有办法写出类似的东西:
if(header == `X-Forwarded-For`) {
limit_req_zone $http_x_forwarded_for zone=k_request_limit_per_ip:10m rate=400r/s;
} else {
limit_req_zone $binary_remote_addr zone=k_request_limit_per_ip:10m rate=400r/s;
}
Run Code Online (Sandbox Code Playgroud)
或者像这样的工作:
limit_req_zone $http_x_forwarded_for zone=http_zone:10m rate=400r/s;
limit_req_zone $binary_remote_addr zone=binary_zone:10m rate=400r/s;
Run Code Online (Sandbox Code Playgroud)
另一种方法是完全允许所有 Cloudflare IP 地址。并限制非 Cloudflare IP 地址。
好的来源: