一、rewrite重写
语法:location 配置 (注:rewire需要pcre才能开启此模块)
location = /uri 精确匹配(必须全部相等)
location ^~ /uri 匹配指定字符开头
location ~ pattern 区分大小写
location ~* pattern 不区分大小写
location / 通用匹配,任何请求都会匹配到
#精确匹配,网址:http://www.example.com/
location = / {}
#区分大小写
location ~ /Example/ {}
http://www.example.com/Example/ [成功]
http://www.example.com/example/ [失败]
#不区分大小写
location ~* /Example/ {}
image.png
高可用服务器搭建
什么是HA
说明:HA是英文High Available的缩写,指高可用服务器
作用:当活动服务器出现故障,导致用户无法访问,则使用备用服务器
介绍keepalived
什么是keepalived:就是一个高可用软件
作用:顾名思义用来监测服务器状态,用来防止单点故障的发生,保证业务正常运行
image.png
安装keepalived
安装:yum -y install keepalived
管理:service keepalived start/stop/restart
配置文件:/etc/keepalived/
日志文件:/var/log/messages
步骤1:至少准备两台服务器(查看ip信息)
步骤2:分别在两台服务器上安装nginx 并访问测试
步骤3:分别在两台服务器上安装keepalived
步骤4:配置主服务器(活动服务器)
image.png
image.png
image.png
#健康检查配置
vrrp_script check_web {
#监控本机80端口
script "</dev/tcp/127.0.0.1/80"
interval 2 #每隔2秒中检测一次
fall 2 #检查2次异常则切换备用服务器
rise 1 #检查正常次数
}
#虚拟路由
vrrp_instance VI_1 {
state MASTER #活动服务器(MASTER) 备用服务(BACKUP)
interface eth0 #绑定的网卡
virtual_router_id 51 #虚拟路由器的ID,有效范围为0-255
priority 100 #优先级
advert_int 1 #健康检查时间
authentication { #身份认证
auth_type PASS
auth_pass 1111
}
track_script { #健康检查脚本
check_web
}
virtual_ipaddress { #VIP(虚拟IP地址)
192.168.159.200
}
}
备用服务器一样安装 ip a查看信息 并进入keepalived.conf配置
image.png
(总言而知,就是配置keepalived 加上虚拟的 "vip(也成虚拟ip)")
负载均衡策略 (也成Nginx的反向代理)
负载均衡:用户的请求的服务器分配给多个服务器来处理
image.png
负载均衡策略:
轮询:将请求依次轮询发给每个服务器。
权重:服务器的权重越高,处理请求的概率越大。
ip哈希:通过哈希函数决定请求发送给哪个服务器。
最少链接:将请求发送给持有最少活动链接的服务器。
语法(修改nginx.conf配置文件):
http {
#设定负载均衡的服务器列表 phpServers 可以写网址或ip或其他英文
upstream phpServers {
#默认轮询
#权重 server 服务器IP:端口 weight=3;
#ip哈希 ip_hash;
#最少连接 least_conn;
server 服务器IP:端口;
server 服务器IP:端口;
server 服务器IP:端口;
}
server {
listen 80;
location / {
# 当80端口有请求的时候交给上面定义的负载均衡器处理(phpServers)
proxy_pass http://phpServers;
}
}
}