nginx压缩与解压
压缩是对请求进行压缩来减小请求的字节数
关于压缩的相关参数,主要是写在http上文中
开启压缩
gzip on;
压缩的文件类型或者对什么文件类型进行压缩
gzip_types text/plain application/javascript application/x-javascript text/css
application/xml text/javascript application/x-httpd-php image/jpeg image/gif
image/png;
多大的文件开始压缩
下面的设置表示,超过100个字节的文件进行压缩
gzip_min_length 100;
如果使用了反向代理,希望对反向代理的文件进行压缩,那么使用以下命令
gzip_proxied 参数;
常见参数
--->off:表示关闭所有的代理结果数据压缩
--->expired:表示如果header中包含”Expires”头信息,启用压缩
--->no-cache:表示如果header中包含”Cache-Control:no-cache”头信息,启用压缩
--->no-store:表示如果header中包含”Cache-Control:no-store”头信息,启用压缩
--->private:表示如果header中包含”Cache-Control:private”头信息,启用压缩
--->no-last-modified:表示启用压缩,如果header中包含”Last_Modified”头信息,启用压缩
--->no-etag:表示启用压缩,如果header中包含“ETag”头信息,启用压缩
--->auth:表示启用压缩,如果header中包含“Authorization”头信息,启用压缩
--->any:表示无条件压缩所有结果数据
对http什么版本进行压缩
gzip_http_version 1.0|1.1
解压
guzip on;
发送压缩静态文件
gzip_static on;
nginx缓存
1、开启nginx缓存
开启nginx缓存的步骤:
● 在http上下文中使用proxy_cache_path写一个缓存的信息
proxy_cache_path /data/nginx levels=1:2 keys_zone=mycache:100m max_size=2048m;
/data/nginx:表示用于存缓存数据的目录信息
levels:表示缓存的结构层次
keys_zone:表示共享缓存空间的名字,后面是大小表示共享缓存初始大小
max_size:表示共享缓存空间最大的值,如果当我们的缓存数据超过这个值,那就会删除一些以前的缓存数据。
● 在server上下文中声明是否使用缓存空间
proxy_cache mycache;
2、与进程相关的缓存
为什么需要对进程的缓存进行相约束,主要的目的是防止快速加载进程缓存时可能对服务器产生的影响。
一般来对进程的缓存约束有以下参数:
● loader_threshold:迭代持续时间,以毫秒为单位(默认情况下 200),每次加载时最多这么长时间。
● loader_fifiles:一次迭代期间加载的最大项目数(默认情况下 100),表示每次最多加载100个文……
● loader_sleeps:迭代之间的延迟,以毫秒为单位(默认情况下 50),表示每次加载延迟50ms。
proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300
loader_files=200;
3、限制或禁用响应缓存
正常如果我们不对响应缓存进行约束,那么这个响应缓存会一直存在共享缓存空间中,直到缓存空间达到最大值max_size才可能被删除。
proxy_cache_valid 200 302 10m;
#表示200和302的响应缓存有效时间为10分钟
proxy_cache_valid 404 1m;
#表示404的响应缓存有效时间为1分钟
proxy_cache_valid any 5m;
#表示任意的响应码响应缓存有效时间为5分钟
4、清除缓存内容
配置清除缓存
首先在http上下文中使用PURGE来配置我们要清除的缓存信息
http {
...
map $request_method $purge_method {
PURGE 1;
default 0;
}
}
在location上下中去引用清除缓存
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass https://localhost:8002;
proxy_cache mycache;
proxy_cache_purge $purge_method;
}
}