负载均衡
反向代理:
代理服务器收到客户端的请求之后,把客户端的请求转发到真实服务器上这种请求形式称之为反向代理
负载均衡:
负载均衡也是反向代理,只是反向代理的一部分
负载:
客户端向服务器发送的请求称之为服务器的负载
均衡:
把客户端发送的请求分配到多台服务器上称之为均衡(不仅仅只平均分配)
负载均衡:
把客户端发送的请求按照某种规则分配到多台服务器上称之为负载均衡
实现负载均衡的配置:
只需要修改反向代理的配置即可
nginx服务器
web01服务器
web02服务器
!!!!!再次强调!!!!!
所有的配置都必须要在/usr/local/nginx-1.17.3中完成
不能把配置配在/home/apps/nginx-1.17.3文件夹中
修改反向代理的upstream配置
反向代理:
upstream tomcat_server{
server 192.168.23.151:8080;
}
负载均衡:
upstream tomcat_server{
server 192.168.23.151:8080;
server 192.168.23.152:8080;
}
重启nginx服务器
进入/usr/local/nginx-1.17.3/sbin目录
./nginx -s reload
报错:
nginx: [error] open() "/usr/local/nginx-1.17.3/logs/nginx.pid" failed (2: No such file or directory)
因为nginx服务器并没有处于启动状态-->重新加载
测试nginx负载均衡服务器
在浏览器输入nginx服务器的地址,会跳转web的服务器上
测试完成后发现两台服务器处于交替访问状态:
负载均衡的访问算法:
默认为轮询算法:所有的服务器被交替访问
使用配置权重的形式来改变轮询算法:
吃的比较胖的干活多
upstream tomcat_server{
server 192.168.23.151:8080 weight=999999999;
server 192.168.23.152:8080 weight=1;
}
默认的权重weight=1
weight默认是没有上限的,可以任意配置
weight最小也只能为1,换句话说weight的值必须要大于等于1
weight必须要是整数,不能出现小数!!!!
不宕机项目更新
发现之前的项目有bug-->修改bug-->需要停掉tomcat-->网站最终无法被客户端访问
QQ在没有更新的时候有bug-->充值100会变成10000-->在服务器上修改bug
down:
该服务器暂时不参加负载
upstream tomcat_server{
server 192.168.23.151:8080 down;
server 192.168.23.152:8080;
}
backup:
备用服务器:
备胎!平时不用,但是主服务器宕机的时候,备用服务器替代主服务器
一旦主服务器启动后,备用服务器就会退位
upstream tomcat_server{
server 192.168.23.151:8080 backup;
server 192.168.23.152:8080;
}
反向代理特点:
过滤非法的请求
allow:允许
deny:禁止(forbidden)
!!!!!!所有的安全配置必须要在proxy_pass配置之上
location / {
deny 192.168.23.153;
proxy_pass http://tomcat_server;
}
location / {
deny all;
proxy_pass http://tomcat_server;
}