缓存选项与故障排查
缓存选项是附加在代理密码末尾的一段序列。代理池、国家、城市和会话等用户名选项保持不变。该后缀本身就是完整的开启方式:Litport不会为令牌静默启用缓存,不带该后缀的请求仍是普通代理请求。
PASSWORD_cache-<types>[_cacheduration-<minutes>][_cacheignoreheader-1]
示例:
username:password_cache-images,fonts
username_country-us_sid-crawl-42:password_cache-all_cacheduration-30
username:password_cache-scripts_cacheduration-60_cacheignoreheader-1
Litport首先将完整密码按字面原样进行尝试。这样可以保留恰好以类似缓存的文本结尾的现有密码。只有当不存在与之完全一致的凭证时,Litport才会解析有效的末尾缓存序列,并对基础密码进行认证。
选项#
| 选项 | 取值 | 行为 |
|---|---|---|
_cache- |
images、scripts、fonts、all、受支持的扩展名,或用逗号分隔的 |
启用符合条件的类型。取值不区分大 |
_cacheduration- |
整数分钟数,最小为1 | 缺省或小于1时默认为120。出于 |
_cacheignorehead |
字面值1 |
对其他方面符合条件的响应,忽略源Date和Age不会从中扣减。绝对的安全排除项仍 |
扩展名分别为png,jpg,jpeg,gif,svg,ico,webp、js,css,wasm,map和woff,woff2,ttf,eot,otf。空列表或不受支持的值会使请求不被缓存,但不会破坏代理认证。
请求结果#
- 命中:从节点上的缓存条目返回的响应体字节免费。客户端中止或缓存读取错误仍会作为交付状态显示,绝不会被转入计费流量。
- 未命中:Litport走正常的上游路径。请求和响应字节按正常方式计费。有效且完整的响应可能会被存储,供其他请求使用。
- 绕过缓存:Litport将请求发往上游,不使用也不存储缓存条目。流量按正常方式计费。
Litport没有专有的或权威的缓存命中响应头。缓存响应上可能出现Age或其值增大,但源站和CDN也可能设置它;要查看命中、未命中、绕过缓存、免费字节数和按流量计费的节省金额,使用“流量统计”或令牌API。不提供手动清除。
适用条件与绝对排除项#
Litport只存储状态码为200、且路径以所选扩展名结尾的HTTPS GET响应。对象由精确的URL标识,包括查询参数的顺序和编码。在标准模式下,s-maxage优先于max-age;源站有效的新鲜度与请求时长中,较短的一个生效。请求时长是硬性上限:当标准模式下的源站响应经修正的Age已达到或超过该时长时,Litport不会存储该响应。使用_cacheignoreheader-1时,请求的TTL从Litport接收并存储完整响应时开始计算,不扣减源站的Date或Age。
以下请求始终绕过缓存,即使使用_cacheignoreheader-1也是如此:
Authorization、Cookie、Range或条件请求头- 请求中的
Cache-Control: no-cache、no-store或max-age=0,或Pragma: no-cache Set-Cookie、不受支持的Vary、部分内容、过大的响应或不完整的响应体- Service Worker、无扩展名的URL、API、文档、视频、音频和归档文件
- 普通
http://目标、SOCKS5入口、UDP以及HTTP/3/QUIC
_cacheignoreheader-1可以覆盖缺失的或起阻止作用的响应缓存指令,但不能覆盖上述列表。由于存储的条目在同一节点上共享,仅对所有请求方内容都相同的公开、无需认证的资源使用此选项。
协议行为#
缓存模式下的HTTPS请求支持HTTP/1.1和HTTP/2客户端。Litport还可以在经过验证的到源站的链路上协商HTTP/2。HTTP/3使用基于UDP的QUIC,而Litport显式的HTTP代理路径是TCP CONNECT;因此QUIC请求不会进入此缓存路径。应用通常会回退到HTTP/2,但Litport不声称支持HTTP/3缓存。
Litport代理端点可以写成http://HUB:PORT。是否符合条件取决于目标URL,目标URL必须是https://...。
故障排查#
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| TLS颁发者或未知CA错误 | 客户端进程不信任Litport根 |
在该进程中配置CA;核对已下载文 |
不带_cache-时正常,带上后失败 |
应用使用独立的信任库,或使用了证 |
配置自己拥有的应用,或不使用缓存 |
| 首次请求会计费 | 所选节点处于冷缓存状态 | 通过同一节点重复请求相同的符合条 |
| 更换节点后请求变成冷缓存 | 缓存存储是本地的,不会复制 | 预热新节点,或让该工作负载固定使 |
| 每个请求都未命中 | URL或查询参数不同、条目已过期 |
比较完整的URL,并检查源站的缓 |
| 在标准模式下,看起来仍然新鲜的源 |
其修正后的Age已达到或超过请求时长 |
在适当时请求更长的时长,使用仍有 |
| 缓存的响应已过时,或必须立即更新 | 不提供手动清除 | 使用更短的TTL或带版本号的UR |
| 请求绕过了缓存 | 方法、请求头、响应、目标协议、入 |
使用符合条件的公开HTTPS GET请求,或继续使用正常计费的 |
| 普通HTTP从不被缓存 | 其到源站的链路没有经过认证的完整 |
继续正常使用;CA无法使普通HT |
对传输层特征敏感的目标,参见缓存与传输层指纹。