respect origin browser TTL in Cloudflare rules
This commit is contained in:
@@ -57,6 +57,8 @@ python scripts/configure_cloudflare_free.py --apply
|
||||
- 城市详情与 detail-batch:尊重源站成功、partial、stale 和错误缓存策略。
|
||||
- `/api/scan/terminal` 与 `/api/system/status`:尊重源站成功、busy、failed 和错误缓存策略。
|
||||
|
||||
所有公开缓存规则都显式设置 Browser TTL 为 Respect origin,避免 Cloudflare 免费版默认 Browser Cache TTL 把 HTML 或数据接口改成 4 小时本地缓存。
|
||||
|
||||
### 2. 最后绕过后端域名、动态和敏感请求
|
||||
|
||||
动作:Bypass cache
|
||||
|
||||
@@ -107,7 +107,10 @@ def _compact_expression(expression: str) -> str:
|
||||
|
||||
|
||||
def _cache_rule(ref: str, description: str, expression: str, ttl: int | None = None) -> Dict[str, Any]:
|
||||
action_parameters: Dict[str, Any] = {"cache": True}
|
||||
action_parameters: Dict[str, Any] = {
|
||||
"cache": True,
|
||||
"browser_ttl": {"mode": "respect_origin"},
|
||||
}
|
||||
if ttl is not None:
|
||||
action_parameters["edge_ttl"] = {
|
||||
"mode": "respect_origin",
|
||||
|
||||
@@ -23,10 +23,14 @@ def test_cloudflare_managed_rules_apply_path_specific_edge_ttls_then_bypass_sens
|
||||
] == [31536000, 600, 300]
|
||||
for rule in rules[:3]:
|
||||
assert rule["action_parameters"]["cache"] is True
|
||||
assert rule["action_parameters"]["browser_ttl"] == {"mode": "respect_origin"}
|
||||
assert rule["action_parameters"]["edge_ttl"]["mode"] == "respect_origin"
|
||||
assert rule["action_parameters"]["edge_ttl"]["status_code_ttl"][1]["value"] == 0
|
||||
for rule in rules[3:-1]:
|
||||
assert rule["action_parameters"] == {"cache": True}
|
||||
assert rule["action_parameters"] == {
|
||||
"cache": True,
|
||||
"browser_ttl": {"mode": "respect_origin"},
|
||||
}
|
||||
assert rules[-1]["action_parameters"]["cache"] is False
|
||||
assert 'http.host eq "api.polyweather.top"' in rules[-1]["expression"]
|
||||
assert 'http.request.uri.query contains "force_refresh=true"' in rules[-1]["expression"]
|
||||
|
||||
Reference in New Issue
Block a user