Nginx 手记(五)静态资源、gzip压缩
程序员文章站
2024-02-08 18:10:04
...
一、相关语法
#1、文件读取 (是否使用内核传输文件)
语法: sendfile on|off
默认值:sendfile off
上下文:http,server,location,if in location
#2、tcp_nopush
#作用:sendfile开启的情况下,提高网络包的传输效率。
#讲解:tcp_nopush on 的时候,网络包不会逐个传输,而是会累积多个一并传输,从而提高传输效率。在大文件传输的场景下,推荐打开。
语法: tcp_nopush on|off;
默认值:tcp_nopush off;
上下文:http,server,location;
#3、tcp_nodelay
#讲解:与tcp_nopush相反,数据包不进行等待而实时性传输给用户。在要求实时性比较高的场景下,推荐打开。
语法: tcp_nodelay on|off;
默认值:tcp_nodelay on;
上下文:http,server,location;
#4、压缩
#作用:压缩传输
语法: gzip on|off;
默认值:gzip off;
上下文:http,server,location,if in location
#5、压缩比
语法: gzip_comp_level level;
默认值:gzip_comp_level 1;
上下文:http,server,location
#5、控制gzip压缩 http协议的版本
语法: gzip_http_version 1.0|1.1;
默认值:gzip_http_version 1.1;
上下文:http,server,location
#6、此模块的作用就是在接到请求后,会到url相同的路径的文件系统去找扩展名为“.gz”的文件
# 比如:http://xxx/homepage.css nginx就会先查找 homepage.css.gz 这个文件,
# 如果存在直接把它发送出去,如果不存在,再将stylesheets/homepage.css文件进行gzip压缩,再发送出去,
# 这样可以避免重复的压缩无谓的消耗资源,这个模块不受gzip_types限制,会对所有请求有效。
# 所以建议不要在全局上使用,因为一般来说大部分都是动态请求,是不会有.gz这个文件的,建议只在局部我们确认有.gz的目录中使用。
语法: gzip_static on|off
默认值:gzip_static off
上下文:http,server,location
二、用例( /etc/nginx/conf.d/default.conf )
server {
listen 80;
server_name localhost;
#文件读取
sendfile on;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /opt/site/playSports;
index index.html index.htm;
}
#匹配图片
location ~ .*\.(jpg|gif|png)$ {
#gzip on;
#gzip_http_version 1.1;
#gzip_comp_level 2;
#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;
root /opt/site/sam/images;
}
#匹配文档
location ~ .*\.(txt|xml)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
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;
root /opt/site/sam/doc;
}
#匹配以/download开头
location ~ ^/download {
#gzip_static on;
#tcp_nopush on; #合并多个文件一次传输
root /opt/site/sam/file;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
测试 gzip_static 的时候,需要先把相应的文件进行gzip压缩
[[email protected] file]# gzip a.dmg
[[email protected] file]# ls
a.dmg.gz
转载于:https://my.oschina.net/magicalSam/blog/1526140
下一篇: 2020春软件构造lab1实验报告