Nginx缓存、静态文件缓存配置

Nginx静态Server基本配置

server {
	listen 80; #监听的端口
	server_name www.test.com; #监听的域名
	charset utf-8;#编码
	root /usr/local/static/www.test.com; #主目录
	index index.html index.htm;#欢迎页面
	}

静态文件缓存配置

http {
# 这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,
# 建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓
存。
open_file_cache max=204800 inactive=20s;
# open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,
# 如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个
# 文件在inactive 时间内一次没被使用,它将被移除。
open_file_cache_min_uses 1;
# 这个是指多长时间检查一次缓存的有效信息
open_file_cache_valid 30s;
# 默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不
# 少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压
缩 ,
# 如果要对html之外的内容进行压缩传输,我们需要手动来设置。
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css appl
ication/xml;
server {
listen 80;
server_name www.test.com;
charset utf-8;
root /data/www.test.com;
index index.html index.htm;
}
}

基础缓存配置

proxy_cache_path/path/to/cache levels=1:2 keys_zone=my_cache:10m
max_size=10g inactive=60m
use_temp_path=off;
server {
...
location / {
proxy_cache my_cache;
proxy_pass http://my_upstream;
}
}

配置参数说明

proxy_cache_path 命令中的参数及对应配置说明如下:
1. 用于缓存的本地磁盘目录是 /path/to/cache/
2. levels 在 /path/to/cache/ 设置了一个两级层次结构的目录。将大量的文件放置
在单个目录中会导致文件访问缓慢,所以针对大多数部署,我们推荐使用两级
目录层次结构。如果 levels 参数没有配置,则 Nginx 会将所有的文件放到同一
个目录中。
3. keys_zone 设置一个共享内存区,该内存区用于存储缓存键和元数据,有些类
似计时器的用途。将键的拷贝放入内存可以使 Nginx 在不检索磁盘的情况下快
速决定一个请求是 HIT 还是 MISS ,这样大大提高了检索速度。一个 1MB
的内存空间可以存储大约 8000个key,那么上面配置的 10MB 内存空间可以存
储差不多 80000 个 key。
4. max_size 设置了缓存的上限(在上面的例子中是 10G)。这是一个可选项;
如果不指定具体值,那就是允许缓存不断增长,占用所有可用的磁盘空间。当
缓存达到这个上线,处理器便调用 cache manager 来移除最近最少被使用的
文件,这样把缓存的空间降低至这个限制之下。
5. inactive 指定了项目在不被访问的情况下能够在内存中保持的时间。在上面的
例子中,如果一个文件在 60 分钟之内没有被请求,则缓存管理将会自动将其
在内存中删除,不管该文件是否过期。该参数默认值为 10 分钟(10m)。注
意,非活动内容有别于过期内容。 Nginx 不会自动删除由缓存控制头部指定的
过期内容(本例中 Cache-Control:max-age=120)。过期内容只有在 inactive
158静态文件服务
指定时间内没有被访问的情况下才会被删除。如果过期内容被访问了,那么
Nginx 就会将其从原服务器上刷新,并更新对应的inactive计时器。
6. Nginx 最初会将注定写入缓存的文件先放入一个临时存储区域,
use_temp_path=off命令指示 Nginx 将在缓存这些文件时将它们写入同一个目
录下。我们强烈建议你将参数设置为off来避免在文件系统中不必要的数据拷
贝。use_temp_path在 Nginx 1.7版本和 Nginx Plus R6中有所介绍。
最终,proxy_cache 命令启动缓存那些URL与location部分匹配的内容(本例中,
为 / )。你同样可以将proxy_cache命令添加到server部分,这将会将缓存应用到
所有的那些location中未指定自己的proxy_cache命令的服务中。

posted @ 2020-06-18 06:01  HumorChen99  阅读(7)  评论(0编辑  收藏  举报  来源