1. 根据上节内容的提示,我们知道如何进行nginx的信号控制和命令行控制了。
2. 这节主要是学习nginx的静态文件、缓存、静态文件压缩等相关内容。
一、 配置并访问nginx静态文件
1.1 root配置nginx静态文件地址
在nginx.conf 配置文件中默认使用root配置了nginx静态界面地址
规则: root配置的路径+location路径为访问的路径。
路径规则:
①相对路径: 上图所示的为相对路径,即nginx的prefix路径(/usr/local/nginx)+html路径,也就是nginx启动时的相对路径。
②绝对路径: 如果配置和上图中一样的路径,则需要改为: root /usr/local/nginx/html。
注: window系统配置则需要加上双引号 eg: "F:/html/html";
1.2 alias配置静态文件地址
若使用alias配置上述路径改如何配置呢?改为下述配置即可:
# eg:1
location /html {
alias /usr/local/nginx/html;
index index.html index.htm;
}
# eg:2
location /html/ {
alias /usr/local/nginx/html/;
index index.html index.htm;
}
上文中我用了两个例子,首先alias配置和root区别之一便是 location匹配的路径需要和实际路径后面那节一样。 (root是 root路径+location路径)
第二个区别就是,root会忽视路径最后面的 / 但是alias必须两个同时存在或同时不存在即可
二、 配置并访问vue项目文件
2.1 使用root配置vue项目地址
# 1. 一般使用根路径配置前端
location / {
root /data/webroot/html/xxx/dist;
index index.html index.htm;
}
2.2 使用alias配置vue项目地址
# 1. 一般使用根路径配置前端
location /dist {
alias /data/webroot/html/xxx/dist;
index index.html index.htm;
}
那么我们进行访问的时候会发现报错如下图所示:
此时主要是因为配置vue项目的地址是使用的相对路径,也就是路径没有/dist导致的,故需要在dist目录下的index.html统一添加前缀即可:
下图为正常访问的情况:
三、 nginx静态文件优化配置
http{
#提高文件的传输效率
sendfile on;
#
tcp_nopush on;
#
tcp_nodelay on;
}
3.1 sendfile,用来开启高效的文件传输模式
值 | 释义 |
on | 开启 eg: sendfile: on; |
off | 关闭 (默认值)。eg: sendfile: off; |
注:① sendfile默认是关闭的。
② 在默认情况下,静态文件请求会进行linux内存将文件从磁盘拷贝到缓冲区、然后再将缓冲区的文件通过进程应用拷贝到sokect缓冲区进行返回。
③ 开启时,则会直接由linux内核拷贝到sokect缓冲区提供,大大节约了io的次数。
④ 在http server location均可以进行开启。
3.2 tcp_nopush:提升网络包的传输'效率(sendfile 开启)
值 | 释义 |
on | 开启 eg: tcp_nopush: on; |
off | 关闭 (默认值)。eg: tcp_nopush: off; |
注: 这个开启,则保证了文件不会零散的发送出去(减少了io次数),一次性发送对于整个网络有很大的优化提升。
3.3 tcp_nodelay:提高网络包传输的'实时性(keep-alive连接开启)
值 | 释义 |
on | 开启 eg: tcp_nodelay: on; |
off | 关闭 (默认值)。eg: tcp_nodelay: off; |
注:① 这个开启,会保证数据包(静态文件会分成很多数据包)存在的时候直接进行发送。
② 看上去这个和3.2 tcp_nopush 是互斥的,但是在linux内核2.5.9之后处理逻辑是先保证3.2 tcp_nopush填满,当文件