【Docker】安装 Nacos容器并根据Nginx实现负载均衡

这篇具有很好参考价值的文章主要介绍了【Docker】安装 Nacos容器并根据Nginx实现负载均衡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的专栏《Docker实战》。🎯🎯

👉点击这里,就可以查看我的主页啦!👇👇

Java方文山的个人主页

🎁如果感觉还不错的话请给我点赞吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

目录

前言

一、Nacos单机模式

1、MySQL容器安装

1.1.创建mysql需要的挂载目录

1.2.创建并运行mysql容器

1.3.创建远程连接用户并执行sql脚本

2、Nacos容器安装

2.1.创建Nacos并启动

2.2.开放防火墙端口

2.3.查看数据库有无数据 

二、Nacos集群配置

1.创建集群Nacos

2.负载均衡Nacos 


前言

安装之前我们需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署先是单机模式后面再讲集群模式

一、Nacos单机模式

1、MySQL容器安装

1.1.创建mysql需要的挂载目录

拉取mysql

docker pull mysql:5.7

mysql需要一个my.cnf的配置文件,目前我们还没有所以需要在宿主机上创建一个将该文件放入到目录中并且将我们的sql脚本放入到script文件中

mkdir  -p /mysql/{conf,data,script}

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

将我们的my.cnf文件放入到conf文件夹下,将sql脚本放入到script文件夹下

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

1.2.创建并运行mysql容器

为了让我们的容器之间可以相互访问,所以我们创建一个网络

docker network create --subnet 172.18.0.0/16 --gateway 172.18.1.1 net

 现在创建容器就需要为它指定我们的自定义网络 

 docker run \
 --name m1 \
 -v /mysql/conf/my.cnf:/etc/my.cnf \
 -v /mysql/data:/var/lib/mysql \
 -v /mysql/script:/script \
 --privileged=true \
 -e MYSQL_ROOT_PASSWORD=123456 \
 --net net \
 --ip 172.18.0.1 \
 -d mysql/mysql-server:5.7

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

1.3.创建远程连接用户并执行sql脚本

进入我们的mysql容器进行登录

docker exec -it m1 bash

mysql -uroot -p

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

创建所需的数据库或者使用远程工具连接创建一下也可以,我这里就一张表就不那么麻烦了

create database nacos;

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

因为前面做了目录挂载所以容器也会有这个脚本,切换到刚创建的数据库中执行sql

use nacos;
 
source /script/nacos-mysql.sql;

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

现在查看一下就会有很多的数据表了

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

最后我们现在需要一个账户进行远程连接所以创建一个账户并赋予权限

grant all on *.* to root@'%' identified by '密码'

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

没有问题退出后记得重启一下docker restart m1 

2、Nacos容器安装

2.1.创建Nacos并启动

 首先我们需要拉取一个Nacos的镜像

docker pull nacos/nacos-server

运行并启动Nacos

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.0.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos \
--restart=always \
--net net \
--ip 172.18.0.2 \
nacos/nacos-server

 注意:这里的MYSQL打头的配置都是填写我们刚刚m1容器的信息 

2.2.开放防火墙端口

①开放端口

firewall-cmd --zone=public --add-port=8848/tcp --permanent

 ②刷新防火墙

firewall-cmd --reload

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

2.3.查看数据库有无数据 

首先在浏览器访问一下我们的Nacos,查看是否可以访问

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

 如果可以访问再查看相应的数据库,现在是没有数据的

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

我们在nacos配置中心随便创作一个数据再来查看一下就会有数据了,说明我们的nacos已经完全生效了。

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

二、Nacos集群模式

先将我们刚刚所创建的nacos容器给删除掉

docker rm -f nacos

1.创建集群Nacos

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.0.3:8848 172.18.0.4:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.0.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos01 \
--restart=always \
--net net \
--ip 172.18.0.2 \
nacos/nacos-server

 指定Nacos为集群模式cluster并设置除自己以外的Nacos地址

这时候我们访问nacos可以看到这里的模式也变成了cluster

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

 现在我们将剩下的两台nacos容器搞出来

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.0.2:8848 172.18.0.4:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.0.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos02 \
--restart=always \
--net net \
--ip 172.18.0.3 \
nacos/nacos-server
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.0.2:8848 172.18.0.3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.0.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos03 \
--restart=always \
--net net \
--ip 172.18.0.4 \
nacos/nacos-server

看似我有三台nacos容器实际上我们只有一台,因为只有一台进行了端口映射 

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

2.负载均衡Nacos 

创建nginx的配置文件目录并将配置文件放入

 mkdir -p  /soft/nginx/conf.d

 【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

upstream nacosList {
    server nacos01:8848 weight=1;
    server nacos02:8848 weight=2;
    server nacos03:8848 weight=2;
}

server {

    listen  80;
    server_name  www.zkingedu.com;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /nacos {
        proxy_pass  http://nacosList;
    }

}

 创建nginx容器

docker run -itd \
--name nginx \
-v /soft/nginx/conf.d:/etc/nginx/conf.d \
-p 80:80 \
--net net \
--ip 172.18.0.5 \
nginx

 现在我们访问一下看看

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

可以看到我们去掉了端口号8848,证明我们现在是通过nginx负载均衡进行访问的 

三、注意事项

我们在发布配置的时候可能会出现以下情况

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

建表SQL语句应查看对应Nacos Servertag版本,我用的是1.4.0的SQL所以产生问题。

按照官方文档重新建表,或直接补全列: 

-- config_info 表
alter table config_info add encrypted_data_key varchar(255);

-- his_config_info 表
alter table his_config_info add encrypted_data_key varchar(255);

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维

到这里我的分享就结束了,欢迎到评论区探讨交流!!

💖如果觉得有用的话还请点个赞吧 💖

【Docker】安装 Nacos容器并根据Nginx实现负载均衡,Docker实战,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-803825.html

到了这里,关于【Docker】安装 Nacos容器并根据Nginx实现负载均衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx自定义负载均衡及根据cpu运行自定义负载均衡

    转载请注明出处: 在Nginx中,可以通过配置文件自定义负载均衡策略。具体步骤如下: 首先,在Nginx配置文件中定义一个upstream模块,并设置负载均衡策略和后端服务器列表,例如: 其中,myapp是一个自定义的upstream名称,backend1.example.com、backend2.example.com、backend3.example.com是后

    2023年04月16日
    浏览(45)
  • 使用nginx+docker实现一个简单的负载均衡

    目录 前言  提出需求 开始 启动nginx 启动一个Django容器 部署多台服务器 1.打包一个容器  2.开启多台服务 3.在各个容器中启动django项目  配置nginx文件实现反向代理和负载均衡 检验 配置负载均衡的其他方法 1.轮询(默认) 2.加权轮询算法 3.ip_hash算法 4.最少连接数算法 5.url_

    2023年04月14日
    浏览(35)
  • Linux上搭建Nacos集群 + nginx做负载均衡

    下载Nacos:访问Nacos的官方网站(https://nacos.io),在下载页面上选择适合您的操作系统和版本,下载Nacos的安装包。 解压安装包:将下载的安装包解压到指定的目录。 配置集群节点:进入解压后的Nacos目录,进入 conf 文件夹,并编辑 cluster.conf 文件。在该文件中,添加集群中每

    2024年02月09日
    浏览(71)
  • 编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

    目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡(Weighted Load Balancing) 轮询(Round Robin) IP 哈希(IP Hash) 最少连接(Least Connections) URL 哈希(URL Hash) 想要安装nginx,首先我们需要有一台Ubuntu的虚拟机,然后最好在

    2024年01月25日
    浏览(50)
  • SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分

    目录 一.认识微服务 1.0.学习目标 1.1.单体架构 单体架构的优缺点如下: 1.2.分布式架构 分布式架构的优缺点: 1.3.微服务 微服务的架构特征: 1.4.SpringCloud 1.5Nacos注册中心 1.6.总结 二、Nacos基本使用安装部署+服务注册 (一)linux安装包方式单节点安装部署 1. jdk安装配置 2. na

    2024年02月09日
    浏览(45)
  • Nginx安装及配置负载均衡

    http://nginx.org/en/download.html 注:下载稳定版,即Stateable Version的,选择对应操作系统,我这里是Linux,就选择了 nginx-1.24.0 安装C++库和openssl等 安装 顺序执行下列命令 七层负载均衡 nginx的负载均衡语法 nginx的负载均衡策略 轮询(Round Robin默认) ​ 轮询是最常见的一种负载均衡策

    2024年02月09日
    浏览(44)
  • Spring Cloud Gateway集成Nacos实现负载均衡

    💡Nacas可以用于实现Spring Cloud Gateway中网关动态路由功能,也可以基于Nacos来实现对后端服务的负载均衡,前者利用Nacos配置中心功能,后者利用Nacos服务注册功能。 接下来我们来看下Gateway集成Nacos实现负载均衡的架构图 一. 环境准备 1. 版本环境 Jdk: java.version1.8/java.version Spr

    2024年02月10日
    浏览(54)
  • Nginx的安装及负载均衡搭建

     PERE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。 注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库 。  zlib zlib库提供了很多种压缩和解压缩的方式,nginx使

    2024年02月12日
    浏览(23)
  • Docker搭建Nginx+keepalived高可用负载均衡服务器

    一、背景 1.nginx高可用 在生产环境下,Nginx作为流量的入口,如果Nginx不能正常工作或服务器宕机,将导致整个微服务架构的不可用。所以负责负载均衡、反向代理的服务(Nginx)为了提高处理性能,高可用,也需要集群部署。本期咋们采用 keepalived 和 Nginx实现高可用。 2.Kee

    2024年04月22日
    浏览(47)
  • Nginx 如何实现负载均衡?

    Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。由于其具有丰富的功能和出色的性能,Nginx 广泛应用于 Web 开发、负载均衡、反向代理等场景。在负载均衡方面,Nginx 可以实现基于轮询、IP_HASH、URL_HASH 和其他算法的负载均衡。本文将详细介绍

    2024年01月18日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包