负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。
实现效果:
浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均 8080 和 8081 端口中
准备工作
(1)启动两台tomcat服务器,8080和8081
(2)在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建页面 a.html(内容不同,便于验证),用于测试
配置
在安装目录/conf/nginx.conf配置如下:
在http块中新增服务器列表
#配置服务器列表
upstream myserver{
server 127.0.0.1:8080;
server 127.0.0.1:8081;#可以在这里配置分配策略,比如按权重: server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=2;
}
修改location中的proxy_pass值为自己新增的服务器列表名字
location / {
root html;
proxy_pass http://myserver; //这一句!!!!
index index.html index.htm;
}
//其中也可以把server中的server_name值改为自己喜欢的ip,非必要,默认是127.0.0.1
验证
在浏览器输入http://127.0.0.1/edu/a.html,随着刷新能看到每次可能访问不同的服务器。
nginx 分配服务器策略
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
upstream server_pool {server 192.168.5.21 weight = 10 ;server 192.168.5.22 weight = 10 ;}
3、ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
upstream server_pool {ip_hash ;server 192.168.5.21:80 ;server 192.168.5.22:80 ;}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream server_pool {server 192.168.5.21:80 ;server 192.168.5.22:80 ;fair ;}