You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量执行curl -IL遍历网站所有页面并设置定时任务实现FastCGI预缓存

如何批量执行curl -IL遍历网站所有页面并设置定时任务实现FastCGI预缓存

看起来你遇到的问题是FastCGI缓存只有在实际访问页面后才会触发HIT,所以需要主动预加载所有页面来确保缓存生效对吧?我来一步步帮你解决这个问题。

第一步:获取网站所有页面的URL列表

首先得拿到网站上所有需要预缓存的页面链接,最方便的方式是用网站的站点地图(比如https://www.example.com/sitemap.xml),如果没有站点地图,可以用wget爬取所有可访问的页面:

wget --spider --recursive --no-verbose --output-file=site_urls.txt https://www.example.com

这个命令会爬取整个网站的链接并保存到site_urls.txt里,之后你可以清理一下这个文件,只保留HTTPS页面链接(过滤掉JS、CSS这类静态资源)。

第二步:编写批量curl的预缓存脚本

创建一个预缓存脚本,比如命名为precache_fastcgi.sh,内容如下:

#!/bin/bash

# 定义URL列表文件路径
URL_FILE="/root/site_urls.txt"

# 遍历每个URL执行curl -IL
while read -r url; do
    # 跳过空行和注释行
    [[ -z "$url" || "$url" == "#"* ]] && continue
    echo "正在预缓存页面: $url"
    curl -IL "$url"
    # 加1秒延迟,避免短时间请求过多压垮服务器
    sleep 1
done < "$URL_FILE"

给脚本添加执行权限:

chmod +x precache_fastcgi.sh

你可以先手动运行脚本测试效果,观察输出里的x-fastcgi-cache字段,第一次请求可能是MISS,第二次就会变成HIT,说明缓存生效了。

第三步:设置Cron定时任务实现每日自动执行

接下来让脚本每天自动运行,用cron来实现:

  1. 打开cron编辑界面:
crontab -e
  1. 添加一行定时任务,比如设置每天凌晨2点执行(这个时间段服务器负载通常较低):
0 2 * * * /root/precache_fastcgi.sh >> /root/precache_logs.txt 2>&1

这段命令的意思是:

  • 0 2 * * * 表示每天凌晨2点触发任务
  • /root/precache_fastcgi.sh 是你的脚本路径
  • >> /root/precache_logs.txt 2>&1 把执行日志和错误信息都写入日志文件,方便后续排查问题
  1. 保存退出后,用crontab -l命令可以确认定时任务是否添加成功。

额外小贴士

  • 如果网站页面数量很多,可以把脚本里的sleep 1改成sleep 2,进一步降低服务器压力
  • 定期查看precache_logs.txt日志,检查有没有请求失败的页面,及时调整URL列表
  • 你之前测试的curl -IL https://www.example.com已经能正确触发缓存,这个脚本只是把这个操作批量应用到了所有页面上

你提供的curl测试输出示例:
root@ubuntu-s-1vcpu-1gb-amd-sfo3-01:~# curl -IL https://www.example.com
HTTP/2 200
date: Thu, 23 Feb 2023 10:31:44 GMT
content-type: text/html; charset=UTF-8
link: https://www.example.com/wp-json/; rel="https://api.w.org/"
link: https://www.example.com/wp-json/wp/v2/pages/16274; rel="alternate"; type="application/json"
link: https://www.example.com/; rel=shortlink
x-fastcgi-cache: HIT
cf-cache-status: DYNAMIC
report-to: {"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v3?s=2K%2BxMLMMrvGpe%2FdpG38gU%2FKaBPBAL5I3rYNL5ATQ65wPM2qMnQmaCe2jLx88N%2B%2BHeUw1RRI5EnrYh9%2F6P5fj7xAipg%2FnOxi4IV8e4IqPWMyANW9JnKndXGfBZw0r3LtF1IEl"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 79df4b241af32f15-LAX
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

备注:内容来源于stack exchange,提问作者Crypto Coupons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:02:44