Skip to content

[Bug] Reverse proxy overrides the application’s default Cache-Control header, breaking its caching strategy #11273

@qingqiuyao

Description

@qingqiuyao

Contact Information

No response

1Panel Version

v2.0.15

Problem Description

反向代理默认配置存在严重设计问题:默认强制添加 Cache-Control: no-cache 响应头,当后端也返回 Cache-Control 时,这会使得出现两个 Cache-Control(no-cache 优先级通常比 max-age 更高?),且当更新反向代理配置保存后(编辑 - 确认),会重新添加 add_header Cache-Control no-cache;

这导致了非预期的缓存行为,尤其在 CDN 之后, CDN 更倾向于遵循 no-cache 而不是 max-age ,导致 HIT 率变低,浏览器缓存行为不可预测。

如果是因为浏览器缓存的停用状态,也不应该添加 Cache-Control 导致破环应用缓存逻辑。

Steps to Reproduce

  1. 网站 - 创建网站 - 反向代理 - 默认配置包含 no-cache。
  2. 网站配置 - 基本 - 反向代理 - 源文 - 删除 add_header Cache-Control no-cache; - 确认 - 编辑 - 不需要改动 - 确认 - add_header Cache-Control no-cache; 回归。

The expected correct result

不应添加 Cache-Control,除非当反向代理浏览器缓存被启用。

这是一个逻辑错误,停用浏览器缓存时(默认),应理解为 “不需要在这里设置客户端缓存控制”,而不是 “客户端不能缓存”。

Related log output

Additional Information

No response

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions