ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 示例 上游服务器: ``` server { listen 8081; add_header X-Accel-Expires 5; //上游服务器告诉代理服务器,缓存的内容5秒后失效; location / { root html/8081; //路径下有index.html,内容是8081 } } server { listen 8082; location / { root html/8082; //路径下有index.html,内容是8082 } } ``` 代理服务器: ``` proxy_cache_path test_cache_path levels=2:2 keys_zone=cache_zone:30m max_size=32g inactive=50m use_temp_path=off; upstream back_end { server 192.168.33.10:8081; server 192.168.33.10:8082; } server { listen 80; server_name website.com; charset utf-8; root html; location / { #proxy_cache cache_zone; //引用上面定义的缓存 #proxy_cache_valid 200 5m; #add_header Nginx-Cache-Status "$upstream_cache_status"; // $upstream_cache_status变量由代理服务器 返回给客户端,里面可以查看缓存命中情况 proxy_pass http://back_end; } } ``` 结果:在不开启缓存的情况下,会轮询的访问上游服务器,并返回其结果: ``` curl website.com/index.html 8081 curl website.com/index.html 8082 curl website.com/index.html 8081 curl website.com/index.html 8082 ``` 将注释去掉,并访问: 第一次: 显示未命中缓存; ``` 8081 ``` ![](https://img.kancloud.cn/97/b9/97b9dd6f02e026c53431165c96054bb8_1058x696.png) 第二次:显示命中缓存,并还是返回8081,这说明nginx直接返回了缓存,没有去请求上游服务器; ![](https://img.kancloud.cn/a8/b0/a8b02dd4a22f80df7e433a026a1391bc_1022x610.png) 第三次:等待5秒后再访问: ![](https://img.kancloud.cn/3e/8d/3e8d461da1dfb5431603bf2fff44baeb_940x674.png)