docker部署tocat+nginx 负载均衡
理论
什么是负载均衡
单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可
负载均衡的优点
简单的来说。可以减少服务器的压力,将原本一台服务器所要承受的访问量分给了多台,并提高了项目的可用性,当一台服务器挂掉的时候也不会导致整个项目瘫痪。
nginx实现负载均衡
nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至服务器。
nginx负载均衡服务器:192.168.132.135
服务器:192.168.132.139
服务器:192.168.14.141
upstream www.test.com{
server 192.168.132.139;
server 192.168.132.141;
}
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://www.test.com;
}
}
掌握负载均衡常用的几种算法
【round-robin轮询、权重、ip_hash、fair(第三方)、url_hash(第三方)、least-connected(最少连接)】
1、轮询(默认)
upstream www.test.com {
server 192.168.132.139;
server 192.168.132.141;
}
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
upstream www.test.com用来指定一个服务器组,该组的名字是www.test.com,包含两台服务器。
在指定服务器组里面包含的服务器时以形式“server ip/domain:port”的形式指定,其中80端口可以忽略。
然后在接收到请求时通过“proxy_pass http://www.test.com”把对应的请求转发到组www.test.com上。
Nginx默认的负载均衡算法就是循环轮询,如上配置我们采用的就是循环轮询,其会把接收到的请求循环的分发给其包含的(当前可用的&#x