root权限下
新建/usr/nginx/cache/webpages目录
在/etc/nginx/sites-available下找到自己所需配置的文件,打开文件后在开头加上proxy_cache_path /usr/nginx/cache/webpages levels=1:2 keys_zone=webpages:30m max_size=2g;
配置说明如下
- /path/to/cache #本地路径,用来设置Nginx缓存资源的存放地址
- levels #默认所有缓存文件都放在同一个/path/to/cache下,但是会影响缓存的性能,因此通常会在/path/to/cache下面建立子目录用来分别存放不同的文件。假设levels=1:2,Nginx为将要缓存的资源生成的key为f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒数第2-3位6d作为两级的子目录,也就是该资源最终会被缓存到/path/to/cache/0/6d目录中
- key_zone #在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key
- max_size #最大cache空间,如果不指定,会使用掉所有disk space,当达到配额后,会删除最少使用的cache文件
- inactive #未被访问文件在缓存中保留时间,本配置中如果60分钟未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默认是10分钟。需要注意的是,inactive和expired配置项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件
- use_temp_path #如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用temp_path存储,official建议为off,避免文件在不同文件系统中不必要的拷贝
- proxy_cache #启用proxy cache,并指定key_zone。另外,如果proxy_cache off表示关闭掉缓存。
在server里面配置橙色代码
server {
listen 80;
server_name xxx.com;
root /usr/share/nginx/html;location / {
proxy_pass http://192.168.186.128:8080;proxy_cache webpages; // 此处跟上面keys_zone配置的目录一样
proxy_cache_valid 20010m;
}}
reload nginx即可
debian reload nginx的脚本
#!/bin/bash
nginx -t
if [ $? == 0 ]; then
nginx -s reload;
echo "nginx: reload";
fi