3.6缓存 文件压缩
永久缓存配置
nginx提供proxy_store指令将提供资源的服务器的响应内容缓存到本地,适合缓存网站中几乎不变的内容
server {
listen 80;
server_name 192.168.1.1;
location / {
root cache; 缓存路径 需要手动创建给权限 /usr/local/nginx/cache
proxy_store on; 开启本地缓存
proxy_store_access user:rw group:rw all:r;
proxy_temp_path cache_tmp; 反向代理时接收的数据的临时存储目录
proxy_pass http://192.168.1.4;
}
}
判断缓存目录中的文件是否存在
如果客户端向web缓存服务器发送请求http://192.168.1.1/test/index.html,高亮部分就是request_filename的值
if (!-e $request_filename) {
proxy_pass http://192.168.1.4
}
也有临时缓存配置
缓存清理配置
unzip ngx_cache_purge-master.zip
mv ngx_cache_purge-master /usr/local/ngx_cache_purge
--add-module=/usr/local/ngx_cache_purge
location ~ /purge(/.*) {
allow 192.168.1.1;
deny all;
proxy_cache_purge cache_one $how$1is_args$args;
}
浏览器本地缓存静态数据
缓存的对象为多媒体文件,因为制作费用比较高,不会频繁更换
修改Nginx配置文件,定义对静态页面的缓存时间
写在对应的server中的location中
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 30d; //定义客户端缓存时间为30天
}
}
对页面进行压缩处理
减少客户的流量的消耗,服务器端压缩,客户端浏览器自动解压
http全局配置中
http {
gzip on; //开启压缩,在文件中被注释掉了
gzip_min_length 1000; //小文件不压缩,小文件越压越大,没的可压
gzip_comp_level 4; //压缩比率(1-9),数字越大,压缩效果越好,时间长,但消耗CPU越大,一般选中间值
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
#文件类型+文件名字,对特定文件压缩,类型参考mime.types,此文件共两列,前一列可以粘贴,后一列是你想要压缩的文件类型
#mime.types在/usr/local/nginx/conf下 左边是格式 右边是拓展名
#多媒体文件不适合压缩,适合用缓存,因为多媒体文件大,压缩与解压缩浪费时间,降低用户的体验度
.. ..
}
服务器内存缓存
如果需要处理大量静态文件,可以将文件缓存在内存,下次访问会更快
http全局配置中
http {
open_file_cache max=2000 inactive=20s; //设置服务器最大缓存文件数2000 因为内存有限,关闭20秒内无请求的文件句柄,文件会在缓存中被清掉
open_file_cache_valid 60s; //文件句柄的有效时间是60秒,过期后清掉,重新缓存
open_file_cache_min_uses 5; //只有访问次数超过5次会被缓存,热点数据才会被放在缓存
open_file_cache_errors off; //缓存失败不记录日志
}
标签:文件,缓存,http,压缩,cache,proxy
From: https://www.cnblogs.com/lixunblogs/p/18167412