资讯专栏INFORMATION COLUMN

Nginx + consul + upsync 完成动态负载均衡的方法详解

1480144907 / 468人阅读

第一步:安装centos7的基础环境

yum install netstat
  
  netstat -ntlp
  
  ps -ef 可选:[ | grep nginx]
  
  kill -9 pid进程号

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum install wget
yum install unzip

第二步:安装consul

wget -c https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip

upzip unzip consul_1.8.5_linux_amd64.zip

systemctl stop firewalld

nohup ./consul agent -dev -ui -node=consul-dev -client=192.168.254.134 &

192.168.254.134:8500

jobs -l
kill -9 19854

第三步:安装nginx 并添加upsync模块

wget -c https://github.com/weibocom/nginx-upsync-module/archive/master.zip
unzip nginx-upsync-module-master.zip

wget -c http://nginx.org/download/nginx-1.9.9.tar.gz

tar -zxvf nginx-1.9.9.tar.gz

groupadd nginx
useradd -g nginx -s /sbin/nologin nginx

mkdir -p /var/tmp/nginx/client/
mkdir -p /usr/local/nginx

cd nginx-1.9.9 

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --add-module=../nginx-upsync-module-master
make && make install

upstream myserver {
 server 127.0.0.1:11111;

 upsync 192.168.254.134:8500/v1/kv/upstreams/springbootserver upsync_timeout=3000ms upsync_interval=500ms upsync_type=consul strong_dependency=off;

 upsync_dump_path /usr/local/nginx-1.9.9/conf/upsync_dump.conf;

 }
 
 location / {
 proxy_pass http://myserver;
 index index.html index.htm;
 }

./nginx

第四步:进行测试

curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8080

curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081

http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:808

第五步:在consul图形化页面添加key对应的value来指定负载均衡的算法

{"weight":1, "max_fails":2, "fail_timeout":10, "down":0}



文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127613.html

相关文章

  • nginx动态负载均衡

    摘要:实现无需动态负载均衡实现无需动态负载均衡环境搭建出现下面提示说明成功启动是新浪微博开源的基于实现动态配置的三方模块。配置动态负载均衡创建指定从拉取的上游服务器后持久化到的位置,这样即使服务器出问题了,本地还有一个备份。 方案 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstrea...

    izhuhaodev 评论0 收藏0
  • 微服务接入层设计与动静资源隔离

    摘要:接入层作用一的聚合。接入层作用二服务发现与动态负载均衡既然统一的入口变为了接入层,则接入层就有责任自动的发现后端拆分,聚合,扩容,缩容的服务集群,当后端服务有所变化的时候,能够实现健康检查和动态的负载均衡。 此文已由作者刘超授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 这个系列是微服务高并发设计,所以我们先从最外层的接入层入手,看都有什么样的策略保证高并发。...

    jindong 评论0 收藏0
  • 2021 年最新基于 Spring Cloud 微服务架构分析

    摘要:是一个相对比较新的微服务框架,年才推出的版本虽然时间最短但是相比等框架提供的全套的分布式系统解决方案。提供线程池不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务器雪崩的问题。通过互相注册的方式来进行消息同步和保证高可用。 Spring Cloud 是一个相对比较新的微服务框架,...

    cikenerd 评论0 收藏0
  • React搭建个人博客(二)consul-template+nginx+docker实现负载均衡

    摘要:前两个数据业务相关的服务即下图的,第三个项目就是的实现的负载均衡。这里后台,前台项目各启动了三个实例,用户访问的时候,就会根据配置的负载均衡的策略,访问其中一个。这一部分与之前我转发的实现服务发现及网关其实也只是差了个网关和负载均衡。 一.简介 上一篇只讲了博客的前端问题,这一篇讲一下后端的微服务搭建。项目的后端使用的thinkjs框架,在我之前的博客中已经写过,这里就不重点说明了。后...

    Coding01 评论0 收藏0
  • React搭建个人博客(二)consul-template+nginx+docker实现负载均衡

    摘要:前两个数据业务相关的服务即下图的,第三个项目就是的实现的负载均衡。这里后台,前台项目各启动了三个实例,用户访问的时候,就会根据配置的负载均衡的策略,访问其中一个。这一部分与之前我转发的实现服务发现及网关其实也只是差了个网关和负载均衡。 一.简介 上一篇只讲了博客的前端问题,这一篇讲一下后端的微服务搭建。项目的后端使用的thinkjs框架,在我之前的博客中已经写过,这里就不重点说明了。...

    李增田 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<