nginx_4.nginx动态负载均衡

自定义hash
worker_processes  2;

events {
    worker_connections  100000; #设置单个worker连接数
}
error_log /redis_2004/logs/error.log;
http {
    #default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream swoole_server {
      # ip_hash; 
      hash $key; # 用户id
      server  192.168.200.140:9001;
      server  192.168.200.140:9002;
      server  192.168.169.140:9003;
      server  192.168.169.140:9004;
        
    }
    server {
        if ( $request_uri ~* ^\/.*uid=(\d+).* ) {
            set $key $1;
        }
        location /swoole {
            proxy_pass http://swoole_server;
        }
    }
}
平滑启动
1.安装upsync模块
wget https://github.com/weibocom/nginx-upsync-module/archive/v2.1.0.tar.gz
tar -zxvf v2.1.0.tar.gz
./configure --add-module=/redis_2004/file/nginx-upsync-module-2.1.0
make
2.将新的nginx替换老的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx2
rm -rf /usr/local/nginx/sbin/nginx
cp /redis_2004/file/nginx-1.17.4/objs/nginx /usr/local/nginx/sbin/
make upgrade

动态负载均衡
1.解压consul包
mv /redis_2004/17/consul /usr/local/bin
2.启动consul
consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=ali -bind=192.168.169.150 -ui -client=0.0.0.0

3.创建servers_test.conf文件

4.nginx配置
worker_processes  2;
worker_cpu_affinity auto;  #自动绑定cpu跟进程的关系
events {
    worker_connections  100000; #设置单个worker连接数
}
error_log /redis_2004/logs/error.log;
http {
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream swo_http_up {
        server  192.168.200.140:9001;

        upsync  127.0.0.1:8500/v1/kv/upstreams/swoole_test upsync_timeout=6m upsync_interval=500ms  upsync_type=consul  strong_dependency=off;
        upsync_dump_path /redis_2004/17/servers_test.conf;
        include /redis_2004/17/servers_test.conf;
        
    }
    server {
        listen       80;
        server_name  localhost;

        location /swoole {
             proxy_pass http://swo_http_up;
        }
        location / {
            autoindex on;
            root /redis_2004/16;
        }
    }
}

5.添加节点
curl -X PUT -d '{"weight":1,"max_fails":2,"fail_timeout":10}' http://127.0.0.1:8500/v1/kv/upstreams/swoole_test/192.168.200.140:9001


consul操作
删除
curl -X DELETE http://127.0.0.1:8500/
查看
curl http://127.0.0.1:8500/v1/kv/?recurse

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值