docker搭建nacos集群 实现nginx反向代理

本文详述了在Docker环境下部署Nacos集群和Nginx反向代理的过程,包括设置共享文件夹、拉取镜像、配置网络、创建数据库、启动容器和配置Nginx。

Docker平台实现nacos集群部署及Nginx反向代理

提示:
系统测试平台:Win10系统
▲ 默认docker已经安装成功
版本说明:
Docker版本:19.03.12
Nacos版本: 1.3.2
Mysql版本:8.0.21
Nginx版本:1.19.2


一、文章结构简述

  1. 自己搭建的Naocs集群操作(Nginx(1台) + Nacos(3台) + Mysql(1台)), 所用的组件版本,详见上方的版本说明
  2. Nacos官方说明的搭建方式操作(Naocs(3台) + Mysql(2台,主从)),版本为官方文档中写明的版本

先说自己搭建的,再讲官方的,其中的曲折会如实记录,配置文件会详细贴出!

二、我的Naocs集群

1 docker设置共享文件

为了配置集群的方便性,已经后续官网配置的可行性,此设置务必配置,否则后续Nacos官网配置的文件无法运行!

1.1 本地主机创建共享文件夹

1.2 设置docker共享文件路径

2 pull所需镜像

命令:
   Mysql拉取:
     docker pull mysql
   Naocs拉取:
     docker pull nacos/nacos-server
   Nginx拉取:
     docker pull nginx

验证是否已经pull到本地:

3 自定义network, 后续在运行容器的时使用


简要说明:

/*
* 默认创建的是bridge网络
* 111.111.111.0/24最后的24,
* 代表网段前24位相同,后8位不同, 
* 即该网段范围为:111.111.111.1~111.111.111.254
*/
docker network create --subnet 111.111.111.0/24 anet 

// 检查自定义的anet是否成功
docker network ls

后续用到的是此网段运行容器,也可以选择docker默认的网段运行容器。

4 配置Mysql

4.1 创建Mysql容器

# --net anet 指定采用自定义网络anet
# --network-alias mysql_main 指定网络范围别名,**备后续配置nacos数据库使用**
# MYSQL_ROOT_PASSWORD=root 指定mysql登录密码,必须添加,否则无法启动容器
docker run -d -p 3306:3306 --network anet --network-alias mysql_main -e MYSQL_ROOT_PASSWORD=root --name mysql_main mysql:latest

验证是否启动成功:

在这里插入图片描述

4.2 创建Nacos数据库

Nacos官方数据源sql链接

操作步骤:
  1. 鼠标点击选中文档中的内容
  2. Ctrl + C, 全部复制
  3. 在本地创建一个sql文件,Ctrl + V 粘贴文本
  4. 保存文件,文件后缀为.sql


方法一: 通过第三方链接sql库工具 Navicat链接mysql容器,并导入sql文件,运行即可


创建数据库:

注意,字符集必须时utf8,因为nacos目前只认utf8字符集,utf8mb4也不行

在这里插入图片描述
导入保存的mysql文件:

在这里插入图片描述

方法二: 进入mysql容器,copy本地sql文件到容器内部,运行

# 查看mysql的容器id, 我的是4080fca966f5
docker ps
# copy本地sql文件到容器内部目录, copy到home根目录下
docker cp C:\Users\xxx\Desktop\nacos-sql.sql 4080fca966f5:/home
本教程将介绍如何使用Docker搭建Nacos集群,并通过Nginx进行反向代理实现负载均衡。 准备工作: 1. 安装DockerDocker Compose 2. 准备三台服务器,分别作为Nacos集群的三个节点 步骤一:下载Nacos镜像 在每个服务器上执行以下命令下载Nacos镜像: ``` docker pull nacos/nacos-server:latest ``` 步骤二:创建Docker Compose文件 在任意一台服务器上创建一个文件夹,命名为nacos,进入该文件夹并创建docker-compose.yml文件,内容如下: ``` version: '3' services: nacos1: image: nacos/nacos-server:latest container_name: nacos1 ports: - "8848:8848" environment: - MODE=cluster - NACOS_SERVER_IP=192.168.1.11 restart: always nacos2: image: nacos/nacos-server:latest container_name: nacos2 ports: - "8849:8848" environment: - MODE=cluster - NACOS_SERVER_IP=192.168.1.12 restart: always nacos3: image: nacos/nacos-server:latest container_name: nacos3 ports: - "8850:8848" environment: - MODE=cluster - NACOS_SERVER_IP=192.168.1.13 restart: always ``` 其中,nacos1、nacos2、nacos3分别对应三个节点,分别监听的端口分别为8848、8849、8850。NACOS_SERVER_IP指定了当前节点的IP地址,这个需要根据实际情况进行修改。 步骤三:启动Nacos集群nacos文件夹下执行以下命令启动Nacos集群: ``` docker-compose up -d ``` 执行完毕后,可以通过以下命令查看容器启动情况: ``` docker-compose ps ``` 步骤四:配置Nginx反向代理 在任意一台服务器上安装Nginx,并修改配置文件/etc/nginx/nginx.conf,增加如下内容: ``` http { upstream nacos { server 192.168.1.11:8848; server 192.168.1.12:8849; server 192.168.1.13:8850; } server { listen 80; server_name nacos.example.com; location / { proxy_pass http://nacos; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } ``` 其中,nacos.example.com为Nacos的访问域名,需要根据实际情况进行修改。配置中创建了一个名为nacos的upstream,包括三个节点的IP地址和端口号。在server块中,通过proxy_pass将请求转发到nacos upstream。 重启Nginx生效。 至此,Nacos集群Nginx反向代理已经搭建完成,可以通过访问http://nacos.example.com:80/进行验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_函数_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值