2021最新Nginx教程,Nginx从入门到精通【159集】
银他妈希
2021年08月05日 17:46

Nginx动静分离

1、访问地址确定资源路径

location /html/ {

root C:/Users/Administrator/Desktop/ginx-1.20.1/data/;

index index.html index.htm;

}

location /images/ {

root C:/Users/Administrator/Desktop/ginx-1.20.1/data/;

autoindex on;

}

location /images/ {

alias C:/Users/Administrator/Desktop/ginx-1.20.1/data/images/;

autoindex on;

}

1.1 autoindex :展示资源目录。

1.2 root的结果:location路径+root路径。

1.3 alias的结果 :使用alias的路径替换location路径。

2、利用正则表达式确定匹配规则

凡是以html、gif、jpg、jpeg、png结尾的请求都会去改路径下找静态资源。

location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {

root C:/Users/Administrator/Desktop/nginx-1.20.1/data/html;

expires 1h;

index index.html index.htm;

}

3、设置过期时间 expires

使用本指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用)。

可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得。

epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。

max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。

-1 指定“Expires”的值为 服务器当前时间 -1s,即永远过期

“Cache-Control”头标的值由您指定的时间来决定:

  • 负数:Cache-Control: no-cache

  • 正数或零:Cache-Control: max-age = #, #​ 为您指定时间的秒数。

"off" 表示不修改“Expires”和“Cache-Control”的值

demo:

控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定

比如

location~ \.(gif|jpg|jpeg|png|bmp|ico)$ {

expires 30d;

}

控制匹配/resource/或者/mediatorModule/里所有的文件缓存设置到最长时间。

4、静态资源访问优化。

4.1 sendFile: 位置:http、server、location

直接调用操作系统底层的sendFile()函数,减少原本copy(),write()操作。

4.2 tcp_nodelay: 位置 http、server、location

无延迟传递数据,有数据就发,数据传输率低。

4.3 tcp_nopush:位置 http、server、location

数据包填满之后才会就数据发送,可以减小网络开销。

4.2和4.3看似是互斥的但是在Linux2.5.9以后是兼容的,如果把三个选项全部打开就可以开启高效文件传输模式。

5、静态资源压缩

#开启压缩 空格可以添加更多类型(图片、视频、音频是高度压缩的所以再次压缩意义不大) ,gzip_types *代表压缩所有的类型,常见的类型有 text/html(默认压缩)、application/json、application/javascript、text/css等等。

位置:http、server、location 。

语法: gzip on; #开启压缩

gzip_types *; #压缩类型

gzip_comp_level 6; #压缩等级,1-9,等级越低压缩率越低但速度快,等级越高压缩率越高速度 慢,一般设置等级在6左右。

gzip_vary on; #告诉接收放数据是经过gzip压缩过的。