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配置缓存区_缓存

 ②修改配置文件:

nginx 配置 缓存 nginx配置缓存区_nginx 配置 缓存_02

nginx 配置 缓存 nginx配置缓存区_缓存_03

 ③检查语法,重启nginx

nginx -t    systemctl restart nginx

nginx 配置 缓存 nginx配置缓存区_服务器_04

 ④查看nginx:netstat -lntup | grep nginx

nginx 配置 缓存 nginx配置缓存区_nginx 配置 缓存_05

nginx 配置 缓存 nginx配置缓存区_缓存_06

 

nginx 配置 缓存 nginx配置缓存区_nginx 配置 缓存_07

 ⑤配置nginx的缓存服务器,修改nginx的配置文件

nginx 配置 缓存 nginx配置缓存区_服务器_08

nginx 配置 缓存 nginx配置缓存区_nginx_09

 #/opt/app/cache表示缓存文件路径;levels表示目录的分级;

#keys_zone表示开辟的缓存空间的名字和大小;max_size表示缓存文件目录的最大大小。

#inactive表示不活跃的,超过多长时间缓存文件没有被访问过,就会清理该缓存文件;

#use_temp_path表示用于存放临时文件的路径;

nginx 配置 缓存 nginx配置缓存区_nginx_10

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 配置 缓存 nginx配置缓存区_缓存_11

⑦开启nginx,查是否起来 

nginx 配置 缓存 nginx配置缓存区_缓存_12

⑧检测:

nginx 配置 缓存 nginx配置缓存区_缓存文件_13

 无论你怎么刷新都不会变,因为我访问的是缓存!!!