1. 静态资源类型
类型 | 种类 |
---|---|
浏览器端渲染 | HTML CSS JS |
图片 | GIF PNG … |
视频 | FLV. MP4… |
文件 | TXT… |
2. 静态资源配置语法
1 sendfile
提高数据从硬盘写到到网络socket上的效率。
Syntax: sendfile on | off;
Default: sendfile off;
Context: http, server, location, if in location
2 tcp_nopush
sendfile开启情况下, 提⾼网络包的“传输效率”。
举例:如10个人需要发快递,不开启nopush,快递员一次取一个需要发送的快递然后去发件,而开启nopush,快递员一次取完所有要发送的快递去发件。
Syntax: tcp_nopush on | off;
Default: tcp_nopush off;
Context: http, server, location
3 tcp_nodelay
和tcp_nopush相反,需要实时传输数据包,提高网络传输的实时性。需要开启keepalive。
Syntax: tcp_nodelay on | off;
Default: tcp_nodelay on;
Context: http, server, location
3. 静态资源压缩
Nginx 将响应报文发送至客户端之前可以启用压缩功能,这能够有效地节约带宽,并提高响应至客户端的速度。但是需要消耗一定的服务器性能。压缩后的资源在客户端浏览器会自动识别并解压。
gzip 压缩配置语法:
Syntax: gzip on | off;
Default: gzip off;
Context: http, server, location, if in location
预读gzip功能,先压缩资源,再去访问:
Syntax: gzip_static on | off | always;
Default: gzip_static off;
Context: http, server, location
4. 图片/文件压缩配置
location ~ .*\.(jpg|gif|png)$ {
#location ~ .*\.(txt|xml)$ { #文件匹配
gzip on; #开启gzip
gzip_http_version 1.1; #压缩适用HTTP协议版本
gzip_comp_level 2; #压缩比率
gzip_types text/plain application/json application/x-javascript app
lication/css application/xml application/xml+rss text/javascript application/x-http
d-php image/jpeg image/gif image/png;
root 图片存放目录;
}
访问同一个test.txt资源,开启压缩和不开启压缩,文件传输的大小对比如下图: