Nginx控制浏览器缓存、Nginx反向代理缓存

一、原理简介

客户请求到Nginx,不仅仅Nginx这边有静态文件,在上游服务器里面也有静态文件。

分为两部分:

一、Nginx服务器这一端的静态文件会被缓存到浏览器:针对单个用户,加快单个用户的访问速度,缓存在本地。

二、上游服务器中的静态资源会被缓存到Nginx服务器中:针对所有用户,降低内网损耗,加快整个系统的访问速度。提升所有访问到nginx这一端的用户,提升访问上游(upstream)服务器的速度,用户访问仍然会产生请求流量。

二、Nginx的expires命令控制浏览器缓存

expires 命令控制一下浏览器的缓存,主要是针对一些静态资源
location / {
	expires 10s; # 允许浏览器缓存该资源10s
	expires @22h30m; # @指定时间点 后过期
	expires -1h; # 在之前1h就已经过期了
	expires epoch; # 不使用缓存了
	expires off; # 默认关闭
	expires max; # 最大时间,永不过期
}   

三、Nginx反向代理缓存(将上游服务器的静态资源缓存在Nginx服务器中)

设置反向代理缓存

proxy_cache_path /usr/local/resources/nginx-1.16.1/upstream_cache keys_zone=mycache:5m max_zise=512m inactive=30s use_temp_path=off

proxy_cache_path 设置缓存路径

keys_zone 设置共享内存及占用空间大小

max_size 设置最大缓存大小

inactive 超时时间,超出此时间则缓存自动清理

use_temp_path 关闭临时目录

以上配置完后需要在 server 中配置开启缓存

proxy_cache mycache;

开启并使用缓存

proxy_cache_valid 200 304 8h;

针对200和304状态码的缓存设置过期时间

# 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=1m use_temp_path=off;
location / {
    proxy_pass  http://tomcats;

    # 启用缓存,和keys_zone一致
    proxy_cache mycache;
    # 针对200和304状态码缓存时间为8小时
    proxy_cache_valid   200 304 8h;
}

已有 0 条评论

    欢迎您,新朋友,感谢参与互动!