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

如何用Caddy搭建追踪像素服务?解决GIF返回失效问题

搭建追踪像素(Beacon)服务器的问题与解决

问题背景

我尝试搭建一个简易的追踪像素服务器,希望Caddy对所有请求返回1px透明GIF,同时通过解析URL记录所需的分析数据,但Caddy返回的GIF显示为损坏状态。

错误的Caddyfile配置

:2015

header Content-Type "image/gif"
header Content-Encoding "base64"
respond /* 200 {
  body "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
  close
}

测试验证

我确认这段Base64编码的GIF是有效的,通过以下HTML代码测试:

<body>
  <img src="http://localhost:2015/foo.gif" />
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
</body>

页面加载后,内联的GIF显示正常,但Caddy返回的GIF依然损坏。我原本不想依赖实际文件或file_server指令,但必要时可以接受这种实现方式。

可行的解决方案

随后改用基于文件的方式实现,将1px透明GIF文件pix.gif放置在/home/patrick/caddplay/temp/目录下,使用以下Caddyfile配置后,服务器运行正常:

:2015

header Content-Type "image/gif"
handle /* {
    root * /home/patrick/caddplay/temp
    rewrite * /pix.gif
    file_server
}

内容的提问来源于stack exchange,提问作者patrickdavey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:57:40