使用Consul配合Nginx实现动态负载均衡

网友投稿 1285 2022-11-27

使用Consul配合Nginx实现动态负载均衡

使用Consul配合Nginx实现动态负载均衡

目录

​​一、前言​​

​​二、consul的简单使用​​

​​1、说明​​

​​2、查看健值​​

​​3、添加健值​​

​​三、配置Nginx配置文件 nginx.conf​​

​​四、向consul注册Nginx服务器信息​​

​​五、访问 的使用实例​​ 中,我们在编排工具中编排了一组服务,其中就包括一个consul。

注:如果不想把consul添加到编排服务中,可以独立安装,可以查看文章 ​​Consul的安装及简单使用​​。

2、查看健值

访问宿主机IP:8500

我们可以直接通过访问 192.168.78.104:8500访问consul 网页客户端,查看和添加健值;也可以通过curl方式添加健值。

3、添加健值

有两种方式,一种是consul网页客户端,一种是curl方式,可以查看文章 ​​Consul的安装及简单使用​​

三、配置Nginx配置文件 nginx.conf

1、进入Nginx容器创建swoft_server.conf

# 进入Nginx容器docker exec -it nginx1.21 bash# 创建swoft_server.conf,为下一步修改Nginx配置文件做准备touch /etc/nginx/conf/swoft_server.conf# 退出容器,回到宿主机exit

2、修改Nginx配置文件 nginx.conf

worker_processes 4;worker_cpu_affinity auto; #自动绑定cpu跟进程的关系events { worker_connections 100000; #设置单个worker连接数}error_log logs/error.log error;{ include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream swoft_server { # 定义一个默认的nginx服务 server 172.22.22.110:18306 max_fails=2 fail_timeout=30s; #server 172.22.22.120:18306 max_fails=2 fail_timeout=30s; #server 172.22.22.130:18306 max_fails=2 fail_timeout=30s; # 定义nginx连接consul_server获取动态upstream的consul_key,upsync_type为consul,每0.5秒从consul拉取一次配置信息 upsync 172.22.22.30:8500/v1/kv/upstream/swoft_server upsync_type=consul upsync_interval=5ms upsync_timeout=1ms; # 定义动态获取consul_server负载均衡信息持久化在磁盘的位置 upsync_dump_path /etc/nginx/conf/swoft_server.conf; # 引入生成的配置文件 include /etc/nginx/conf/swoft_server.conf; } server { listen 80; server_name localhost; root / location / { proxy_pass } }}

注:修改完Nginx配置文件,不要忘了重启nginx容器哦 o( ̄▽ ̄)d ​​docker restart nginx1.21​​

四、向consul注册Nginx服务器信息

curl -X PUT -d '{"max_fails":2,"fail_timeout":10}' -X PUT -d '{"max_fails":2,"fail_timeout":10}' -X PUT -d '{"max_fails":2,"fail_timeout":10}' 172.22.22.110inet 172.22.22.120inet 172.22.22.130

说明动态负载均衡配置成功

六、动态负载均衡实现原理总结

1、Nginx加载配置文件nginx.conf

2、从consul中获取动态配置 ,生成一个动态负载均衡配置文件 swoft_server.conf;

3、Nginx使用该动态负载均衡配置文件,得到多个可用服务IP及端口号

4、Nginx开始负载均衡

注意:看第三段”配置Nginx配置文件 nginx.conf“ 即可大致分析出来动态负载均衡的实现原理。这里还没有对nginx服务做健康检查,因此使用curl或consul前端页面推送或删除的结果就直接决定配置文件生成的结果

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:swoole 知识小课堂
下一篇:Spring Cloud服务安全连接方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~