跳至内容

Odoo 19 反向代理超时:长报表与导入的网关配置

反向代理超时:长报表与导入要和异步策略一起设计
2025年11月22日
Odoo 19 反向代理超时:长报表与导入的网关配置

Nginx/反向代理默认超时过短时,Odoo 19 长报表与大批量导入会变成 504。只把 proxy_read_timeout 调到 600 不是治本:并发一高,worker 照样堵死。正确做法是:交互请求短超时;已知长任务改异步入队;必须同步的少数 location 单独放大并限流。本文给出网关、Odoo limit 与观测的配合方式。

分层超时策略

普通 UI/JSON:较短超时,快速失败。入队接口:短超时即可。少数同步导出 location:放大超时,但限制并发与 IP。Odoo 侧同步检查 limit_time_cpu / limit_time_real,与网关匹配,避免一侧已断、一侧仍算。

上传与 body 大小

client_max_body_size 覆盖最大导入文件;应用层做类型白名单与病毒扫描(若有)。超大 CSV 应分批导入或异步作业,而不是一次 POST 百万行。

观测

504 比例进监控,并按 URL 区分报表还是导入。优先把高频 504 改成异步(参见队列报表文),再保留合理超时作为兜底。

落地步骤

  1. 列出过去两周 504 的 URL Top N。
  2. 能异步的改入队;不能的单独 location + 限流。
  3. 压测导入与导出,观察 worker 占用。

验收标准

  • 小报表秒开;大导入有异步路径或明确超时提示。
  • 504 告警能定位到具体 location。
  • 放大超时的路径有并发上限。

504 Top N 治理看板

从反向代理日志按周统计 504 URL,分成三类:可异步报表、可分批导入、必须同步的短交互。 前两类立项目改队列;第三类检查是否误用了重计算。同步调大超时的 location 必须加 limit_req 或等价限流。Odoo 的 limit_time_real 与网关超时差建议 保留几十秒缓冲,避免两边同时杀。变更超时配置走变更单,并在预生产用慢接口验证。

导入模板限制行数与必填列,前端先拦,网关与异步作业做第二道防线。

配置基线示例(需按环境调整)

普通 location:较短 proxy_read_timeout/web/dataset 类交互同样短超时。 异步入队接口短超时。同步导出专用 location 超时更大但 limit_conn 更严。 client_max_body_size 对齐最大导入。Odoo limit_time_cpu/limit_time_real 与网关匹配。变更后用构造的慢接口验证 504 曲线。把「超时调大」当作临时缓解,工单必须链到异步改造任务。

导入作业显示进度与可取消;取消后清理临时附件,避免盘满。

504 治理看板链到异步改造工单,临时加大超时必须有到期日。

预生产勾选表需覆盖文章编号 323 全部验收点后再约生产窗口。

将文章编号 323 的配置变更记入发版说明,便于回滚对照。

将文章编号 323 的配置变更记入发版说明,便于回滚对照。

将文章编号 323 的配置变更记入发版说明,便于回滚对照。

将文章编号 323 的配置变更记入发版说明,便于回滚对照。

超时变更的到期机制

任何「临时加大超时」工单必须写到期日与异步改造链接,到期自动提醒负责人。 504 Top N 周更。导入前端限行。异步优先。网关与 limit_time_real 对齐。 变更在预生产用慢接口验证。监控按 location 分维,避免只看总 504 率。

中国Odoo网|对照 Odoo 19 企业版网关实践:超时与异步双轨,504 可定位,长任务优先入队。

Odoo 19 反向代理超时:长报表与导入的网关配置
2025年11月22日
存档