负载均衡配置示例
准备
启动两个tomcat , 端口分别为 8080 , 8081, 启动nginx 80端口 ,
(资源有限, 以上部署在一个虚拟机上 , ip都相同)
现在要实现我访问192.168.33.129:80/balancedemo/test.html 的时候 均衡负载在 2个tomcat的服务上 .
配置
在http块中配置如下:
upstream balanceserver{
server 192.168.33.129:8080;
server 192.168.33.129:8081;
}
server {
listen 80;
server_name 192.168.33.129;
location / {
proxy_pass http://balanceserver;
proxy_connect_timeout 10;
}
}
含义就是 当我访问 192.168.33.129:80 的时候按轮询(默认)的方式分别负载在了 192.168.33.129:8080 和 192.168.33.129:8081 上.
改完执行 ./nginx -s reload 重新加载配置文件.
效果
效果如下:
由于是轮询的方式, 所以 在点击刷新时 8080和8081会交替出现.
负载均衡策略
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
weight
weight 代表权,重默认为 1,权重越高被分配的客户端越多 指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如:
upstream server_pool{
server 192.168.5.21 weight=10;
server 192.168.5.22 weight=10;
}
ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
例如:
upstream server_pool{
ip_hash;
server 192.168.5.21:80;
server 192.168.5.22:80;
}
fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优
upstream server_pool{
server 192.168.5.21:80;
server 192.168.5.22:80;
fair
}
|