# HTTP 响应缓存（未实现）

> 说明当前版本的缓存配置为何不可用，以及可部署的替代方案

---

LLMS 索引： [llms.txt](/llms.txt)

---

`nps.conf` 保留了 HTTP(S) 隧道的内存缓存配置：

```ini
http_cache=true
http_cache_length=100
```

`http_cache_length` 表示最多保留的缓存条目数，使用 LRU 淘汰；`0` 表示不限制条目数。修改后需要重启 NPS。

## 当前版本状态

当前版本不会填充可供后续请求命中的响应缓存。因此即使开启以上参数，也**不能把它作为可用的静态文件缓存功能部署**。

## 推荐方案

需要减少 NPC 链路流量时，在 NPS 的 HTTP 入口前部署 Nginx、Caddy、Varnish 或 CDN，并让它们按标准 HTTP 缓存语义处理 `Cache-Control`、`Expires`、`Vary` 和认证响应。例如 Nginx：

```nginx
proxy_cache_path /var/cache/nginx/nps levels=1:2 keys_zone=nps_cache:10m max_size=1g inactive=60m;

server {
    listen 80;
    server_name static.example.com;

    location / {
        proxy_pass http://127.0.0.1:8010; # nps.conf 的 http_proxy_port
        proxy_set_header Host $host;
        proxy_cache nps_cache;
        proxy_cache_valid 200 10m;
        add_header X-Cache-Status $upstream_cache_status always;
    }
}
```

验证时连续请求同一静态资源，观察第二次是否返回 `X-Cache-Status: HIT`。不要缓存登录态、带 `Authorization` 的响应或包含用户隐私的动态内容，除非已经设计了正确的缓存键和绕过规则。

---

反链：

- [更多功能](/extend/feature/index.html)
- [服务端配置](/server/configuration.html)
