nginx配置Proxy Cache缓存的12个指令

时间:2024-03-16 15:06:54

nginx配置Proxy Cache缓存的12个指令

proxy Buffer开启后才能使用proxy_cachhe。将已有的数据在内存中建立缓存数据,缓存过期不销毁硬盘的数据,nginx接受到被代理服务器的数据后,通过proxy buffer机制将数据传递给客户端,通过proxy cache将数据缓存到本地硬盘

1. proxy_cache zone | off;

配置一块公用的内存区域名称,该区域可以存放缓存的索引数据

2. proxy_cache_bypass string ...;

配置nginx服务器向客户端发送数据时,数据不从缓存中获取的条件

proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment $http_pragma

3. proxy_cache_key string;

设置nginx服务器在内存中为缓存数据建立索引时使用的关键字

如:proxy_cache_key $scheme$proxy_host$uri$is_args$args;//数据包包含主机关键字

4. proxy_cache_lock on | off;

是否开启缓存的锁功能,开启后,nginx同时只能有一个请求填充缓存中的某一数据项,不允许其他请求操作,其他请求要操作由proxy_cache_lock_timeout配置等待时间。

5. proxy_cache_lock_timeout time;

锁后等待时间,默认5s。

6. proxy_cache_min_uses number;

配置客户端请求发送的次数,当相同请求达到设置次数后才会缓存该请求的响应数据,默认为1。

7. proxy_cache_path;

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_threshold=time];

path:缓存数据存放根目录

levels:指定该缓存空间有两层hash目录,第一层目录为1个字母,第二层为2个字母

keys_zone=name:size 设置缓存名字和共享内存大小

inactive在指定时间内没人访问则被删除在这里是1天 (天:d、秒:s、分:m)

max_size最大缓存空间

8. proxy_cache_use_stale;

proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | off ...;

当被代理服务器无法访问或出错时,nginx用历史缓存响应客户端请求,默认off

9. proxy_cache_valid [code...]time;

对不同的http响应状态设置不同的缓存时间

proxy_cache_valid 200 3m;

proxy_cache_valid 404 1m;

proxy_cache_valid any 5m;//any表示该指令所有未设置的其他状态

10. proxy_no_cache string...;

string可以使多个变量,为空为0则启用cache功能

11. proxy_store on | off | string;

配置是否在本地磁盘缓存来自被代理服务器的响应数据,对静态数据的效果比较好

on会存放在alias指令或者root指令设置的本地路径下

string自定义缓存文件存放路径

12. proxy_store_access users:permissions ...;

配置用户或者用户组对proxy store缓存的数据访问权限

user:user,group,all

permissions:权限

如:proxy_store_access user:rw group:rw all:r