上一节中,我们通过在Nginx里面设置expires指令,我们就可以控制缓存在浏览器端的效果。这些缓存是在浏览器里面的。在我们的上游服务器(Tomcat、Apache、Nginx)里面也会有一些静态资源文件,对于这些静态资源文件来说,他们是通过内网进行传输,传输到Nginx这一端,用户再来访问。虽然是在内网,但是传输也会占用一定的带宽和损耗,所以在Nginx这一端,也可以为上游服务端的静态资源文件做缓存。从而提高用户的请求体验。
测试配置如下:
#配置上游服务器
upstream tomcats {
server 192.168.93.129:8080;
server 192.168.93.130:8080;
server 192.168.93.131:8080;
}
# proxy_cache_path 设置缓存保存的目录
# proxy_cache_path 设置缓存目录
# keys_zone 设置共享内存以及占用空间大小
# max_size 设置缓存大小
# inactive 超过此时间则被清理
# use_temp_path 临时目录,使用后会影响nginx性能
proxy_cache_path /usr/local/nginx/upstream_cache keys_zone=mycache:5m max_size=1g inactive=8h use_temp_path=off;
server {
listen 80;
server_name 192.168.93.128;
location / {
proxy_pass http://tomcats;
# 启用缓存,和keys_zone一致
proxy_cache mycache;
# 针对200和304状态码缓存时间为8小时
proxy_cache_valid 200 304 8h;
}
}