相关疑难解决方法(0)

Nginx 检查 Cloudflare 是否转发或直接 IP 并相应限制

我知道了头CF-Connecting-IP$binary_remote_addrhttp_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 地址。

好的来源:

nginx cloudflare

4
推荐指数
1
解决办法
442
查看次数

标签 统计

cloudflare ×1

nginx ×1