如何用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
相关产品推荐
相关产品推荐

