负载均衡单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到多个服务器上,将服务器分发到不同的服务器上,也就是我们所说的负载均衡。
nginx的安装https://blog.csdn.net/www1056481167/article/details/115394981
实现效果
浏览器地址栏输入 http://192.168.1.138/edu/a.html 负载均衡效果,平均分配到8080和8081的端口中。
准备工作:
1、准备两台tomcat服务器,8080、8081服务器(https://blog.csdn.net/www1056481167/article/details/115396974)
2、在两台tomcat里面webapps目录中,都创建edu文件夹,在edu文件夹下创建a.html 然后配置nginx
cd /usr/src/tomcat/tomcat8080/apache-tomcat-7.0.108/webapps
mkdir edu
cd edu/
vim a.html
<h1>!!!8080</h1>cd /usr/src/tomcat/tomcat8081/apache-tomcat-7.0.108/webapps
mkdir vod
cd vod/
vim a.html
<h1>!!!8081</h1>
cd /usr/local/nginx/conf/
http{
......
#1、添加负载均衡服务器的列表
upstream myserver{
server 192.168.1.17:8080 weight=1;
server 192.168.1.17:8081 weight=1;
}
......
server{
listen 80;
#2、服务名称为本机的ip地址
server_name 192.168.1.17;
location / {
......
#3、代理地址为负载均配置的服务列表
proxy_pass http://myserver;
proxy_connect_timeout 10;
}
}
}
nginx的分配策略
1、默认为轮询
2、weight 代表的是权重,默认为1,去找你冲越高被分配到额客户端越多,写法是更在服务器server的后面
upstream myserver{
server 192.168.1.17:8080 weight=10;
server 192.168.1.17:8081 weight=1;
}
3、ip_hash 每个请求按照访问的ip的hash结果分配,这样每个访问固定访问一个后端服务器,可以解决session的问题
upstream myserver{
ip_hash;
server 192.168.1.17:8080;
server 192.168.1.17:8081;
}
4、fair(第三方)
按照后端服务器的响应时间来分配请求,响应时间段的优先分配
upstream myserver{
server 192.168.1.17:8080;
server 192.168.1.17:8081;
fair;
}
测试
http://192.168.1.17:80/edu/a.html (刷新会发现根据配置默认的规则来回切换)