Nginx负载均衡

3 篇文章 0 订阅

 准备工作

解压另一个tomcat,并且与上一个命名不同,

打开其中一个修改其端口号

打开/Tomcat/tomcat82/conf/server.xml

 

改变端口号

 

改变关闭端口号

然后改变一下首页内容,好分辨

/Tomcat/tomcat82/webapps/ROOT/index.jsp 

我这里改变的是8081 

 


前提准备好 

如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。

负载均衡策略:转发特定服务器所遵循规格,nginx 的 upstream目前支持 五种方式的分配


1)、轮询(默认),默认:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
2)、weight:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 (权重/加权),权重越高分配的请求越多,权重越低,请求越少。默认是都是1
3)、ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  
4)、fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。  
5)、url_hash(第三方):按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

日常使用轮询或weight

 

1、轮循

修改/etc/nginx/conf.d/default.conf

upstream mytomcat {
 	server 127.0.0.1:8080;
 	server 127.0.0.1:8081;
}

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
       # root   /usr/share/nginx/html;
        #index  index.html index.htm;
        proxy_pass http://mytomcat/;
    }

 

你所配置的 upstream 的 name 是自定义的,但是不要出现 - 号,否则会和 tomcat 有冲突。

你持续访问 http://127.0.0.1 你会发现页面的内容会是交替出现 8080 端口和 8081 端口

 

2、加权轮循

加权轮循就是在轮循的基础上,为每个单点加上权值。权值越重的单点,承担的访问量自然也就越大。

upstream myServer{//要代理的服务器
	server 127.0.0.1:8080 weight=1;
	server 127.0.0.1:8081 weight=2;
}

按照上述配置,8081 端口的服务将承担 2/3 的访问量,而 8080 端口则承担 1/3 的访问量。

将配置改为上述样子并重启 Nginx 后,再持续访问 http://127.0.0.1 你会发现 8080 端口和 9090 端口会以 1-2-1-2-... 的次数交替出现。

除了 weight 外,常见的状态参数还有:

配置方式说明
max_fails允许请求失败次数,默认为 1 。通常和下面的 fail_timeout 连用。
fail_timeout在经历了 max_fails 次失败后,暂停服务的时长。这段时间内,这台服务器 Nginx 不会请求这台 Server
backup预留的备份机器。它只有在其它非 backup 机器出现故障时或者忙碌的情况下,才会承担负载任务。
down表示当前的 server 不参与负载均衡。

例如 

upstream myServer {
    server 192.168.78.128 weight=1 max_fails=1 fail_timeout=30s;
    server 192.168.78.200 weight=2 max_fails=1 fail_timeout=30s;
    server 192.168.78.201 backup;
    server 192.168.78.210 down;
}

 

3.ip_hash 负载

 ip_hash 方式的负载均衡,是将每个请求按照访问 IP 的 hash 结果分配,这样就可以使来自同一个 IP 的客户端固定访问一台 Web 服务器,从而就解决了 Session 共享问题。

upstream mytomcat {
     ip_hash;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

使用上例配置后,你会发现无论你请求多少次 http://127.0.0.1 你所看到的端口始终是 80808081 中的某一个。

然后启动两个端口的Tomcat,再启动nginx,访问端口号

 ​​​​​​​​​​​​​​

然后再刷新或者再次访问这个端口,就达到效果了 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值