跳转到内容

新建反代配置

你会学到:如何一步一步在 OpenFlare 中从零新建并发布一个反向代理网站配置。本指南将指导你如何完成证书导入与申请、源站定义、路由规则配置、版本发布以及连通性验证。


推荐操作流程

在网关控制面中,建议遵循以下步骤新增反代规则:

text
  [ 步骤 1. 证书管理 ] ──► [ 步骤 2. 源站定义(可选) ] ──► [ 步骤 3. 新增网站配置 ]

  [ 步骤 5. 验证访问 ] ◄── [ 步骤 4. 发布与激活版本 ] ◄───────────────┘

第一步:证书准备

在使用 HTTPS 安全加密流量前,你需要先准备好对应的 TLS 证书(支持手动导入已有证书,或通过 DNS 验证自动向 CA 申请并托管续期)。

为了保持反代配置指南的简洁,证书相关的详细操作(包括如何在 Cloudflare 申请专用 DNS API Token)已独立拆分为专属指南。请先前往 TLS 证书与自动续期 完成证书准备,然后回到这里继续下一步。


第二步:准备上游源站(可选)

源站(Origin)代表被代理的后端真实服务地址。虽然在新建网站时可以直接填写 IP,但推荐先在源站库中进行注册,以便后续复用与维护:

  1. 进入左侧导航 「网站管理」->「源站地址」,点击 「新增源站」
  2. 填写源站名称(如 production-api)。
  3. 填入合法的上游地址(如 http://10.0.0.10:8080),点击保存。

第三步:新建网站配置

证书和源站就绪后,即可创建核心网站代理路由:

  1. 进入左侧导航 「网站管理」->「域名列表」,点击 「新增 Zone」
    • 域名:输入该站点绑定的域名。
    • 绑定证书:选择第一步准备或申请好的证书。
  2. 配置请求路由规则:进入 「规则管理」 页面,点击 「新建规则」 或编辑已有规则:
    • 规则名称:输入规则的唯一简易标识(如 app-portal-route)。
    • 域名匹配:填入对应的域名(支持通配符或精确域名,需与上面登记的域名一致)。
    • 在下方 「反向代理」 选项卡下,选择 回源方式 为「直连上游」。
    • 源站选择:从下拉框中选择第二步创建的源站;或者选择手动输入并填入 http://10.0.0.20:9000
  3. 点击保存创建配置。

第四步:发布并生效配置

你在管理端新增的网站配置仅保存在 Server 数据库中,不会立即生效。必须生成配置版本快照并分发到 Agent 边缘节点:

  1. 点击控制面板右上角的 「预览并发布」 按钮。
  2. 检查配置文件的 Diff 差异,确认你刚刚新增的 server 块以及证书绑定规则无误。
  3. 点击 「确认发布」 按钮。
  4. Agent 落地机制
    • 数据面的 Agent 节点在心跳中发现激活的版本 Checksum 变更,会自动拉取完整的 OpenResty 配置文件和证书包到本地。
    • 自动在本地执行配置校验(类似于 openresty -t),确认无语法错误后,执行平滑重载(reload)。
    • 如果重载或校验失败,Agent 会安全阻断并回滚至上一稳定版本,保证节点高可用。

第五步:连通性与回滚验证

1. 验证访问

你可以通过以下方式验证新配置是否生效:

  • 浏览器访问:直接在浏览器输入 https://your-domain.com 查看是否成功代理后端。
  • 命令行验证(推荐):使用 curl 探测:
    bash
    curl -I https://your-domain.com
  • 绕过 DNS 校验:若你的域名尚未正式解析,可以临时指定 Host 请求头请求 Agent 节点物理 IP:
    bash
    curl -I -H "Host: your-domain.com" https://AGENT_NODE_IP --insecure

2. 一键秒级回滚

如果发布的新配置导致了线上业务异常:

  1. 导航至左侧 「版本发布」 菜单。
  2. 在历史列表中找到发布前的上一个稳定版本。
  3. 点击 「激活」
  4. 所有在线 Agent 节点将在秒级自动重载回历史配置,实现秒级避险。

边缘缓存(可选)

站点详情 「缓存」 页可开启边缘 proxy_cache(须同时开启 性能设置 → 全局 OpenResty 缓存)。行为对标 Cloudflare 默认模型,详见 边缘缓存策略设计

推荐设置

建议
策略标准静态资源(默认推荐):仅 css/js/map/图片/字体等,不含 HTML/JSON
登录 Cookie不会单独跳过缓存;带会话的用户仍可命中静态资源
源站静态资源建议 Cache-Control: public, max-age=…;动态/个性化必须 privateno-store
响应 Set-Cookie不会写入边缘缓存
无源站缓存头按状态码使用默认 Edge TTL(如 200 约 120 分钟)

高级策略「所有可缓存 GET」

类似 Cloudflare Cache Everything:路径不再限制扩展名。若源站对 HTML 未声明 private/no-store可能把个性化页面缓存并串用户。仅在源站缓存头正确、或内容全局一致时使用。

生效方式

缓存开关与策略写在配置快照中。保存站点后须 发布并激活配置版本,Agent 应用后才生效。仅改 UI 不发布则节点仍用旧规则。

快速自检

  1. 全局缓存已开,站点缓存已开,策略为「标准静态资源」。
  2. 发布配置并确认节点应用成功。
  3. 带登录 Cookie 连续两次请求同一 /assets/app.js(或带 hash 的 immutable 路径),访问日志中 cache_status 第二次应为 HIT(或 UI「命中」)。
  4. 若仍为「未缓存」:确认策略是否匹配该路径扩展名、是否非 GET、源站是否返回 Set-Cookie / private,以及节点是否已应用新版本。更多见 故障排查 · 边缘缓存

基于 Apache License 2.0 发布