我试图镜像我的nginx服务器上的所有GET
请求,到另一个web应用程序进行分割测试.这工作和过滤所有请求类型,但GET -但-不幸的是,它也发送PURGE
请求向前到镜像.所以不知何故,limit_except
似乎不过滤这些PURGE
请求.
为什么会这样?
以下是我的部分配置:
从HTTP块:
split_clients "${remote_addr}AAA" $mirror_backend {
30% web_mirror;
* "";
}
字符串
从服务器块:
location / {
gunzip on;
include /etc/nginx/proxy_params;
mirror /mirror;
proxy_pass http://varnish;
}
location = /mirror {
internal;
limit_except GET {
deny all;
}
if ($mirror_backend = "") {
return 400;
}
include /etc/nginx/proxy_params;
proxy_pass http://$mirror_backend$request_uri;
}
型
来自接收PURGE请求的镜像服务器的示例输出-它不应该:
10.0.0.10 mydomain.com 2023-10-25T14:51:52+02:00 "PURGE /path/here HTTP/1.1" 405 0 "-" "cache-warmer/android" - "-" - - - - 99cae641-0961-48b3-9965-bfd4a8ed3ff7 0.091 - - - - ruby
型
1条答案
按热度按时间jv2fixgn1#
根据文件
方法参数可以是以下参数之一:GET、HEAD、POST、PUT、POST、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、REPORT、UNREPORT或PATCH。
可以看到,
limit_except
无法识别PURGE
。字符串
我已经使用了444,但请随意使用其他你认为更合适的东西。