respect origin browser TTL in Cloudflare rules

This commit is contained in:
2569718930@qq.com
2026-06-10 21:00:48 +08:00
parent 5adf397a1e
commit 5d57a5e597
3 changed files with 11 additions and 2 deletions
+2
View File
@@ -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
+4 -1
View File
@@ -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",
+5 -1
View File
@@ -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"]