MySQL + Nginx + Nacos 搭建nacos集群环境

1、安装jdk

参考文章: Centos安装JDK1.8

2、安装MySQL

参考文章: Centos安装MySQL

2.1、docker安装MySQL

  1. 下载镜像文件
    docker pull mysql:5.7
    
  2. 创建实例并启动
    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    
    参数说明
    -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
    -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
    -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
    -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
    -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
  3. MySQL 配置
    vi /mydata/mysql/conf/my.cnf
    
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
    注意:解决 MySQL 连接慢的问题
    在配置文件中加入如下,并重启 mysql
    [mysqld]
    skip-name-resolve
    解释:
    skip-name-resolve:跳过域名解析
  4. 通过容器的 mysql 命令行工具连接docker exec -it mysql mysql -uroot -proot
  5. 设置 root 远程访问
    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
    flush privileges;
    
  6. 进入容器文件系统
    docker exec -it mysql /bin/bash
    

3、安装Nginx

参考文章: Centos安装Nginx

  1. 配置Nginx配置文件
    MySQL + Nginx + Nacos 搭建nacos集群环境_第1张图片
  2. 启动Nginx
    ./nginx
    
  3. 具体含义可参考该文章: Nginx

4、安装Nacos

  1. 下载地址(我下的是2.0.3版本): Nacos版本下载地址

  2. 下载完成后,放到虚拟机的某个目录,进行解压 nacos-server-2.0.3.tar.gz

    tar -zxvf nacos-server-2.0.3.tar.gz 
    
  3. nacos配置mysql数据库

    • 我使用的是docker安装的MySQL数据库,需要进入容器后,查看容器ip,如果是Centos安装的MySQL,ip就是127.0.0.1.
      MySQL + Nginx + Nacos 搭建nacos集群环境_第2张图片
    • 进入nacos目录下的conf目录下
      MySQL + Nginx + Nacos 搭建nacos集群环境_第3张图片
    • 配置application.properties文件(最好备份一份 cp application.properties application.properties. init)
      Alt
  4. nacos的集群配置cluster.conf

    • 配置cluster.conf(最好备份一份 cp cluster.conf cluster.conf.init),配置内容如下(配置的是本机真实ip,不能用localhost和127.0.0.1 ,暂时不清楚为什么是这样):
      在这里插入图片描述
    • 上述ip可以通过命令查看,地址如下(如果用第二192.168.56.10,会出现一些问题,集群部署后,会有ip为10.0.2.15:3333等多个nacos被启动,暂时不清楚这个原因):
      在这里插入图片描述
  5. 编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口

    • 进入nacos安装目录下的bin目录下,编辑 startup.sh(建议这个启动文件快照或者cp startup.sh startup.sh.bk一份)
      MySQL + Nginx + Nacos 搭建nacos集群环境_第4张图片

      while getopts ":m:f:s:c:p:o:" opt
      do
          case $opt in
              m)
                  MODE=$OPTARG;;
              f)
                  FUNCTION_MODE=$OPTARG;;
              s)
                  SERVER=$OPTARG;;
              c)
                  MEMBER_LIST=$OPTARG;;
              p)
                  EMBEDDED_STORAGE=$OPTARG;;
              o)
                  PORT=$OPTARG;;
              ?)
              echo "Unknown parameter"
              exit 1;;
          esac
      done
      

      在这里插入图片描述

      # start
      echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
      nohup "$JAVA" -Dserver.port=${PORT} "$JAVA_OPT_EXT_FIX" ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
      echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
      
  6. 复制当前Nacos文件夹复制两份(如果都在一个文件夹启动一个会报错)

    • 启动第一个能成功,如果在当前文件夹下启动第二个,当启动报错信息如下(打印日志,可以进入nacos目录下的log文件夹下的naocs.log文件或者查看Nacos2.0.3的日志(如果没启动Nacos是不会有logs/start.out这个文件的)):

      ./startup.sh -o 3333
      

      MySQL + Nginx + Nacos 搭建nacos集群环境_第5张图片
      MySQL + Nginx + Nacos 搭建nacos集群环境_第6张图片

    • 分别在不同的copy的nacos文件夹下的startup.sh启动,指定端口号 ./startup.sh -o 端口号。启动成功查看日志,都会出现下图。可以在访问:http://虚拟机ip:3333/nacos/#/login 、http://虚拟机ip:4444/nacos/#/login 、http://虚拟机ip:5555/nacos/#/login,如果都能访问成功,证明集群搭建成功。

      #查看启动nacos实例
      ps -ef|grep nacos|grep -v grep
      

      MySQL + Nginx + Nacos 搭建nacos集群环境_第7张图片
      MySQL + Nginx + Nacos 搭建nacos集群环境_第8张图片
      MySQL + Nginx + Nacos 搭建nacos集群环境_第9张图片
      MySQL + Nginx + Nacos 搭建nacos集群环境_第10张图片

  7. 使用Nginx访问,实现负载均衡效果。之后环境需要配置即可配置该地址即可,实现了nacos集群环境的搭建和使用。
    MySQL + Nginx + Nacos 搭建nacos集群环境_第11张图片

你可能感兴趣的:(mysql,nginx,docker,分布式,架构)