侧边栏壁纸
博主头像
Disue · 迪素

Carpe diem

  • 累计撰写 11 篇文章
  • 累计创建 9 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

halo博客提速 90%:利用搬瓦工做中转,实现动态内容与静态资源的极致加速

Disue
2026-04-05 / 0 评论 / 0 点赞 / 24 阅读 / 0 字

0. 前言:你是否也在为博客加载速度头疼?

很多博主将 Halo 部署在海外落地机上,虽然性价比高,但国内访客在晚高峰加载资源时常感“尿急”。虽然 1Panel 面板自带了“服务器缓存”开关,但传统的“一刀切”缓存往往会导致后台保存失败、评论不实时、甚至登录掉线。

今天分享一套单域名双机加速”终极方案:利用搬瓦工(优质回国线路)作为流量入口,配合 1Panel 原生缓存机制与自定义 Skip-Cache 逻辑,实现前端秒开、后台豁免、全链路透明**的极致体验。


1. 核心主角:为什么选择这两家服务商?

在这一架构中,两台 VPS 各司其职,互为补充:

落地机:ZGOVPS(极致性价比的性能怪兽)

ZGOVPS 凭借其极其硬核的硬件配置(如 AMD EPYC 7003 系列处理器)在圈内出名。我选择它作为 Halo 博客的“大本营”,是因为它在处理并发请求和数据分析时非常强悍。

  • 优势:高性能 CPU、NVMe 存储,非常适合运行 Halo 容器和数据库。

  • 痛点:虽然部分线路不错,但针对国内全网段的直连优化仍有波动。

  • 👉 点击查看 ZGOVPS 最新优惠套餐

入口机:搬瓦工 Bandwagon Host(回国线路的“金字招牌”)

搬瓦工无需多言,它是目前市面上最稳定的 CN2 GIA/9929 线路提供商之一。将其作为“边缘加速节点”,可以确保全国各地的访客都能通过最快的物理路径连接到你的博客。


2. 核心架构逻辑

当访客请求 disue.com 时,搬瓦工边缘节点会进行“智能分流”:

  1. 静态资源(.jpg/.js/.css 等):命中缓存则直接返回(HIT),未命中则从源站抓取并存入硬盘。

  2. 动态内容(HTML 页面):按需缓存 10 分钟,兼顾 SEO 与内容更新。

  3. 管理后台/API:识别到管理员身份,直接转发(BYPASS),确保交互无延迟。


3. 实战配置步骤

第一步:开启 1Panel 缓存空间 (Zone 定义)

1Panel 的缓存是按域名隔离的,我们必须先在 Nginx 的 http 级别定义一个“存钱罐”(缓存空间)。

  1. 在 1Panel 左侧菜单进入 “网站” -> 找到你的站点 -> 点击 “配置文件”

  2. 在文件的最顶部(必须在 server { 这一行的上方),粘贴以下代码:

    Nginx

    # [核心] 定义缓存路径,keys_zone 名称必须包含域名以适配面板规则
    proxy_cache_path /www/sites/disue.com/cache levels=1:2 keys_zone=proxy_cache_zone_of_disue.com:10m max_size=2g inactive=7d use_temp_path=off;
    
    • max_size=2g: 缓存占用的磁盘上限,搬瓦工 SSD 很大,建议设为 2G 以上。

    • inactive=7d: 7 天没人访问的资源自动清理。

第二步:配置智能反向代理逻辑 (入口机配置)

这是整套方案的“大脑”。我们需要进入 1Panel 专门管理反代的地方。

  1. 打开 /opt/1panel/www/sites/disue.com/proxy/root.conf

  2. 在弹出的代码窗口中,清空原有内容,替换为以下优化版逻辑:

Nginx

location ^~ / {
    # --- 1. 落地机连接  ---
    proxy_pass http://[你的落地机IP]:8090; 

    # --- 2. 协议透传  ---
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Forwarded-Host $host; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 

    # --- 3. 🔥 缓存智能分流 (避开后台) ---
    set $skip_cache 0; 
    # 如果是后台路径或 API 请求,跳过缓存
    if ($request_uri ~* "/admin|/console|/api|/ucore" ) { set $skip_cache 1; }
    # 如果识别到登录 Cookie (包含 XSRF-TOKEN),跳过缓存看实时页面
    if ($http_cookie ~* "admin_token|halo_auth|access_token|XSRF-TOKEN" ) { set $skip_cache 1; }

    # 挂载第一步定义的缓存空间
    proxy_cache proxy_cache_zone_of_disue.com;
    proxy_cache_bypass $skip_cache; 
    proxy_no_cache $skip_cache; 

    # 核心:动态内容缓存 1 分钟,实现准实时更新,保护落地机
    proxy_cache_valid 200 301 302 1m; 
    proxy_cache_key $host$uri$is_args$args;
    proxy_ignore_headers Cache-Control expires; 

    # --- 4. 静态资源 30 天强缓存 (搬瓦工本地响应) ---
    if ( $uri ~* "\.(gif|png|jpg|jpeg|css|js|woff|woff2|svg|webp|avif|ico)$" ) {
        expires 30d; 
        add_header Cache-Control "public, no-transform, immutable"; 
    }

    # 自定义 Header 方便排查:显示来自搬瓦工节点
    add_header X-Cache "$upstream_cache_status from BWH-Edge"; 
}
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Forwarded-Host $host; 

    # --- WebSocket 支持 ---
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 

    # --- 🔥 智能缓存劫持 (核心) ---
    set $skip_cache 0; 
    if ($request_uri ~* "/admin|/console|/api|/ucore" ) { set $skip_cache 1; }
    if ($http_cookie ~* "admin_token|halo_session|halo_auth|access_token" ) { set $skip_cache 1; }

    proxy_cache proxy_cache_zone_of_disue.com;
    proxy_cache_bypass $skip_cache; 
    proxy_no_cache $skip_cache; 
    proxy_cache_valid 200 301 302 10m; 
    proxy_ignore_headers Cache-Control expires; 

    # --- 静态资源强效加速 ---
    if ( $uri ~* "\.(gif|png|jpg|jpeg|css|js|woff|woff2|svg|webp|avif|ico)$" ) {
        expires 30d; 
        add_header Cache-Control "public, no-transform, immutable"; 
    }

    add_header X-Cache "$upstream_cache_status from BWH-Edge"; 
}

4. 权限补丁与面板收尾

  1. 面板操作:保存后,前往 1Panel “反向代理” 菜单,手动将 “服务器缓存” 拨至开启。

  2. 目录授权:在搬瓦工 SSH 执行,否则 Nginx 无法写入数据。

Bash

mkdir -p /opt/1panel/www/sites/disue.com/cache
chmod -R 777 /opt/1panel/www/sites/disue.com/cache

5. 成果验证

  • 访客视角:打开浏览器 F12,静态资源响应头显示 X-Cache: HIT。加载速度从数秒直接降至 200ms 以内。

  • 管理视角:访问后台,Header 应显示 X-Cache: BYPASS。这意味着搬瓦工直接穿透,所有修改即时生效。

结语

在面板的便利与代码的自由之间找到平衡点,是技术折腾最大的乐趣。通过搬瓦工的高速线路与 ZGOVPS 的强劲动力相结合,你的 Halo 博客也可以拥有“私人 CDN”般的飞速体验。

0

评论区