Nacos部署
Nacos部署
1.准备工作
1.1 准备镜像
需要使用到的容器镜像包括以下1个,需要提前拉取并导出:
- nacos/nacos-server:v2.1.1
1.2 准备服务器
需要准备至少3台服务器用于集群高可用安装,资源紧张时可以与其他组件共用服务器。
1.3 安装Docker
参考本文档基础环境安装内容,安装Docker及Docker Compose。
1.4 准备负载均衡
参考Nginx的部署内容。
1.5 Mysql数据库
需要部署主备Mysql数据库,参考Mysql部署的内容。创建名为nacos库。
2.部署集群
2.1 导入镜像
将上一步导出的容器镜像,拷贝到医院环境3台服务器并导入:
docker load -i nacos-server.tar
2.2 获取初始化SQL,并导入
docker run -itd --name test-nacos nacos/nacos-server:v2.3.2 /bin/bash
docker cp test-nacos:/home/nacos/conf/mysql-schema.sql .
docker rm -f test-nacos
使用客户端工具将mysql-schema.sql导入数据库。
2.3 创建Nacos的docker-compose.yaml文件
mkdir /hos/nacos/data -p
cd /hos/nacos
vim docker-compose.yaml
version: '3'
services:
nacos:
image: "nacos/nacos-server:v2.1.1"
container_name: nacos
restart: on-failure:3
environment:
- TZ=Asia/Shanghai
- MODE=cluster
- PREFER_HOSTZ_MODE=ip
- NACOS_SERVER_PORT=8848
- NACOS_SERVERS=16.32.15.115:8848 16.32.15.200:8848 16.32.15.201:8848
- MYSQL_SERVICE_HOST=16.32.15.115
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=nacos
- MYSQL_SERVICE_PASSWORD=password
- JVM_XMS=1024m
- JVM_XMX=1024m
- NACOS_AUTH_ENABLE=true
- SPRING_DATASOURCE_PLATFORM=mysql
- NACOS_AUTH_IDENTITY_KEY=hos
- NACOS_AUTH_IDENTITY_VALUE=245eb1ba490248e9872b668cb86439a2
- NACOS_AUTH_TOKEN=ODVmMTQ4MmMtMTY0MC00ZmExLWJiNmEtN2Q0NjY1YzBjYzY4Cg==
volumes:
- ./data:/home/nacos/data
network_mode: "host"
privileged: true
其中,根据实际环境修改的参数:
- NACOS_SERVERS:nacos的三台服务器的ip地址和端口
- MYSQL_SERVICE_HOST:mysql的地址
- MYSQL_SERVICE_PORT:mysql的端口
- MYSQL_SERVICE_DB_NAME:mysql数据库名
- MYSQL_SERVICE_USER:mysql账号
- MYSQL_SERVICE_PASSWORD:mysql密码
2.4 启动服务
docker-compose up -d
2.5 配置负载均衡
vim /etc/nginx/conf.d/nacos.conf
upstream nacosCluster {
server 16.32.15.115:8848 weight=3;
server 16.32.15.200:8848 weight=3;
server 16.32.15.201:8848 weight=3;
}
server {
location /nacos {
proxy_pass http://nacosCluster;
proxy_connect_timeout 3s;
proxy_read_timeout 30s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
}
}
3.访问验证
- 浏览器访问:http://NginxIP/nacos
- 默认账号/密码:nacos/nacos