Vue使用npm命令打包:npm run build
1. Nginx是什么
Nginx是一个高性能的基于HTTP的反向代理的服务器、也是一个基于SMTP和POP3的邮件服务器 其主要功能就类似于Tomcat,对外提供资源共享
反向代理(Reverse Proxy)是指以代理服务器来接收客户端请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端
反向代理的作用:
-
保证内网的安全,阻止web攻击,因为客户端是无法感知真正做事的服务器的存在
-
负载均衡:代理服务器将接收的请求均分给被代理的服务器
2. Nginx能干什么
Nginx既然是服务器,那么其能做的事就是数据共享,具体体现如下:
-
虚拟主机
虚拟主机就是虚拟服务器,就跟Java虚拟机差不多,Java虚拟机虽然是虚拟的,但也具备计算机的功能,也能运行。虚拟主机也一样,虽然不存在,但Nginx可以虚拟出来,对外提供服务
-
反向代理
前面已经介绍过
-
负载均衡
负载就是服务器承载的负荷,所谓均衡指的是多个服务器之间的负荷对比,单个服务器没有均衡的说法。负载均衡就是指多个服务器之间处理的请求数量要大致相同
-
动静分离
动指的是资源会变化,比如从服务器获取的数据。
静指的就是资源不会变化,比如从服务器获取的html、css、js、图片等。
动静分离指的是动态资源放在服务器上处理,静态资源放在nginx上处理。
3. Nginx的安装及目录说明
演示
4. Nginx配置
nginx的学习也就是配置文件的学习
4.1 虚拟主机配置
server { listen 8888; server_name localhost; location /{ root d:/demo; index index.html; } }
4.2 反向代理配置
# 以/electronic/开始的请求会被代理到另外的服务器访问 location /electronic/ { proxy_pass http://localhost:9000/; }
4.3 负载均衡配置
upstream electronicServer { server localhost:9000; server localhost:9001; } # 以/electronic/开始的请求会被代理到另外的服务器访问 location /electronic/ { proxy_pass http://electronicServer/; }
-
负载均衡---轮询
upstream electronicServer { server localhost:9000; server localhost:9001; }
-
负载均衡---权重
upstream electronicServer { server localhost:9000 weight=2; #权重越大,被分配处理的请求越多 server localhost:9001 weight=1; }
-
负载均衡---ip_hash
ip_hash就是通过请求的ip地址,使用hash算法,算出来应该访问那一台服务器,如果是ip地址没变,那么这个请求的服务器 就永远都不会变
upstream electronicServer { ip_hash; # 负载均衡规则 server localhost:9000; server localhost:9001; }
4.4 动静分离
5. 附录: 匹配规则
-
=
= 开头表示精确匹配
-
^~
^~ 开头 表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
-
~
~ 开头表示区分大小写的正则匹配
-
~*
~* 开头表示不区分大小写的正则匹配
-
!~
!~开头表示区分大小写不匹配
-
!~*
!~*开头表示不区分大小写不匹配
-
/
/ 通用匹配,任何请求都会匹配到。