Nginx 入门系列三之压缩,目录浏览,限制流量

1 压缩指令 gzip

nginx 中 gzip 的主要作用是减轻服务器的带宽问题,经过 gzip 压缩后的页面大小可以变为原来的30% 甚至更小,这样用户浏览页面时的速度会快很多。gzip 的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压缩并解析。目前的大多数浏览器都支持解析 gzip 压缩过的页面。

如果我们需要启动压缩,需要在 nginx.conf 的 http 模块加入 gzip 的配置

#开启gzip
gzip  on;   
#低于1kb的资源不压缩
gzip_min_length 1k; 
#压缩级别【1-9】,越大压缩率越高,同时消耗cpu资源也越多,建议设置在4左右。
gzip_comp_level 3; 
#需要压缩哪些响应类型的资源,多个空格隔开。不建议压缩图片。
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css; 
#配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持) 
gzip_disable "MSIE [1-6]\.";  
#是否添加“Vary: Accept-Encoding”响应头
gzip_vary on;  

注意,以下两种类型的文件不建议压缩:

  1. 图片:图片本身是经过压缩的,在开启 gzip 之后,压缩前和压缩后大小没有多大区别,故开启之后反而会浪费资源。价值不大。
  2. 小文件:会消耗大量 cpu 资源,且不一定有明显效果。

2 目录浏览

Nginx 默认不允许我们浏览整个目录,若我们需要实现此功能,需要在配置文件上稍作修改。

		location / {
            root file;
            #index test.html;
            #启用目录
            autoindex on;
            #默认为 on,显示文件的确切大小,单位是bytes。改为 off会显示出文件的大概大小,单位是kB或者MB或者GB
            autoindex_exact_size off;
            #默认为off,显示的文件时间为GMT时间。改为on后显示的文件时间为文件的服务器时间
            autoindex_localtime on;
        }

注意:这里我们需要注释掉index test.html;,否则当我们访问目录时会直接跳转到 test.html 上。又由于默认页面为 index.html,我们还需要将默认页面 index.html 全部删除,只有这样我们才能浏览目录。

修改完毕之后,重新加载配置文件。

nginx -s reload

我们之前在 file 目录下添加一个目录 test 用来浏览,里面内容如下:
在这里插入图片描述

然后我们浏览 http://localhost:80/test/ ,结果如下
在这里插入图片描述

自此,我们的目录浏览功能实现完毕。

3 限制流量

limit_rate 可开启限制流量功能,对象是单个连接。

http {
    ...
    server {
        ...
        location / {
        	#不限速传输的响应大小为50M,传输量大于此值时,超出部分将限速传送。
        	#作用域为http, server, location, if in location
         limit_rate_after 50m;
        	#对单个连接限速500kB每秒
        	#作用域为http, server, location, if in location
        	limit_rate 500k;
        }
}

参考:Nginx gzip的配置和校验

发布了127 篇原创文章 · 获赞 237 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Geffin/article/details/103126554