nginx如何开启gzip
http性能优化开启ZIP压缩
nginx如何开启gzip-MakerLi

什么是nginx?

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

nginx的工作原理

Nginx会按需同时运行多个进程:一个主进程(master)和几个工作进程(worker),配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程(cache manager)等。所有进程均是仅含有一个线程,并主要通过“共享内存”的机制实现进程间通信。主进程以root用户身份运行,而worker、 cache loader和cache manager均应以非特权用户身份运行。

nginx如何开启gzip压缩

找到nginx的配置,输入以下代码

  gzip on; #是否开启gzip模块 on表示开启 off表示关闭
  gzip_min_length  1k;
  gzip_buffers     4 16k; #设置压缩所需要的缓冲区大小
  gzip_http_version 1.1;#设置压缩http协议的版本,默认是1.1
  gzip_comp_level 5;#压缩级别1-9,数字越大压缩的越好,也越占用CPU时间
  gzip_types     text/plain  application/x-javascript text/javascript text/css text/js application/xml application/json application/javascript  font/ttf application/octet-stream;#设置压缩的文件类型
  gzip_vary on; #加上http头信息Vary: Accept-Encoding给后端代理服务器识别是否启用 gzip 压缩
  gzip_proxied   expired no-cache no-store private auth;# Nginx做为反向代理的时候启用
  gzip_disable   "MSIE [1-6]\."; # 禁用IE 6 gzip

需要注意的是下面几个参数:

gzip_comp_level:压缩级别

虽然压缩级别是1-9越高越好,但是实测达到6以后大小基本不会改变但是服务器的CPU却会加剧,所以一般综合考虑为5或者6

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 – 无条件压缩所有结果数据