nginx作为缓存服务配置语法
1、proxy_cache_path 配置语法(即缓存路径配置语法)
Syntax:proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number]
[manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep =time] [ purger_threold=time]
path表示缓存文件路径; levels表示目录的分级; use_temp_path表示用于存放临时文件的路径; keys_zone表示开辟的缓存空间的名字和大小; inactive表示不活跃的,超过多长时间缓存文件没有被访问过,就会清理该缓存文件; max_size表示缓存文件目录的最大大小。
Default:——; 表示默认没有配置。
Context:http; 表示只能配置在http块中。
2、proxy_cache配置语法(即缓存配置语法)
Syntax:proxy_cache zone | off; 表示配置代理缓存的区域。
Default:proxy_cache off; 表示默认关闭状态。
Context:http,server,location 表示可以配置在http块、server块及location块中。
3、proxy_cache_valid 配置语法(即缓存过期周期配置语法)
Syntax:proxy_cache_valid [code…] time; 表示配置代理缓存的有效期,code 指返回客户端的状态码。
Default:——; 表示默认没有配置。
Context:http,server,location 表示可以配置在http块、server块及location块中。
4、proxy_cache_key 配置语法(即缓存维度配置语法)
Syntax:proxy_cache_key string; 表示配置代理缓存维度的key。
Default:proxy_cache_key $scheme $proxy_host $request_uri; scheme表示协议,proxy_host表示主机,request_uri 表示url。
Context:http,server,location 表示可以配置在http块、server块及location块中。
实验:
前期准备:
192.168.169.30(已安装nginx) 此虚拟机作为负载均衡缓存服器
192.168.169.40(已安装nginx) 此虚拟机通过nginx配置两个端口访问两个不同的页面(模拟两台虚拟机应用
①/opt/app/code1/目录下创建index.html 1页面
/opt/app/code2/目录下创建index.html 2页面
②修改配置文件:
③检查语法,重启nginx
nginx -t systemctl restart nginx
④查看nginx:netstat -lntup | grep nginx
⑤配置nginx的缓存服务器,修改nginx的配置文件
#/opt/app/cache表示缓存文件路径;levels表示目录的分级;
#keys_zone表示开辟的缓存空间的名字和大小;max_size表示缓存文件目录的最大大小。
#inactive表示不活跃的,超过多长时间缓存文件没有被访问过,就会清理该缓存文件;
#use_temp_path表示用于存放临时文件的路径;
location / {
proxy_pass http://blance;
proxy_cache blance_cache; #上面配置的keys_zone的名字
proxy_cache_valid 200 300 12h; #表示200状态码、300状态码缓存的有效期,12小时后过期
proxy_cache_valid any 10m; #表示除了200和300状态码,其他的10分钟以后过期
proxy_cache_key $host$uri$is_args$args; #定义缓存的key格式
add_header Nginx-Cache "$upstream_cache_status"; #添加头信息给客户端,f12时可以看缓存是否被命中
#配置的upstream服务器如果发生错误、超时或者返回500、502、503、504时跳过此台服务器访问下一台服务器
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
⑥配置文件检测:
⑦开启nginx,查是否起来
⑧检测:
无论你怎么刷新都不会变,因为我访问的是缓存!!!