1. 环境准备
准备4台服务器,一台安装nginx和mysql 另三台做集群使用
IP | 服务 | 操作系统 |
192.168.3.215 | Nginx/Mysql | CentOS 7.9 |
192.168.3.216 | Nacos-1 | CentOS 7.9 |
192.168.3.217 | Nacos-2 | CentOS 7.9 |
192.168.3.218 | Nacos-3 | CentOS 7.9 |
mysql选用5.7 需要提前安装,并且部署nacos数据库脚本,nacos脚本可以看我之前的博客
2. 部署nacos集群
2.1 拉去nacos镜像(选用nacos2.0.2):三台服务器都需要执行
docker pull nacos/nacos-server:2.0.2
2.2 创建nacos日志路径 :三台服务器都需要执行
mkdir -p /usr/local/software/nacos/logs
2.3 执行docker命令:三台服务器分别执行
2.3.1 nacos-1(192.168.3.216) docker命令
docker run -d \ -p 8848:8848 \ -p 9848:9848 \ -e NACOS_AUTH_ENABLE=true \ -e JVM_XMS=128m \ -e JVM_XMX=128m \ -e JVM_XMN=128m \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVER_PORT=8848 \ -e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.3.215 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=root \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \ -e NACOS_SERVER_IP=192.168.3.216 \ -v /usr/local/software/nacos/logs:/home/nacos/logs \ --privileged=true \ --restart=always \ --name nacos1 \ nacos/nacos-server:2.0.2
2.3.2 nacos-2(192.168.3.217) docker命令
docker run -d \ -p 8848:8848 \ -p 9848:9848 \ -e NACOS_AUTH_ENABLE=true \ -e JVM_XMS=128m \ -e JVM_XMX=128m \ -e JVM_XMN=128m \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVER_PORT=8848 \ -e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.3.215 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=root \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \ -e NACOS_SERVER_IP=192.168.3.217 \ -v /usr/local/software/nacos/logs:/home/nacos/logs \ --privileged=true \ --restart=always \ --name nacos2 \ nacos/nacos-server:2.0.2
2.3.3 nacos-3(192.168.3.218) docker命令
docker run -d \ -p 8848:8848 \ -p 9848:9848 \ -e NACOS_AUTH_ENABLE=true \ -e JVM_XMS=128m \ -e JVM_XMX=128m \ -e JVM_XMN=128m \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVER_PORT=8848 \ -e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.3.215 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=root \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \ -e NACOS_SERVER_IP=192.168.3.218 \ -v /usr/local/software/nacos/logs:/home/nacos/logs \ --privileged=true \ --restart=always \ --name nacos3 \ nacos/nacos-server:2.0.2
参数说明:
参数 | 说明 |
-d | 支持后台运行模式 |
-p 8848:8848 | 把容器内的端口8848挂载到宿主机8848上面 |
-p 9848:9848 | 把容器内的端口9848挂载到宿主机9848上面 |
-e NACOS_AUTH_ENABLE=true | 开启 Nacos server 的注册鉴权 |
-e JVM_XMS=128m | 为jvm启动时分配的内存 |
-e JVM_XMX=128m | 为jvm运行过程中分配的最大内存 |
-e JVM_XMN=128m | 为jvm设置年轻代的大小 |
-e PREFER_HOST_MODE=ip | 是否支持hostname,可选项:hostname/ip,默认值ip |
-e MODE=cluster | 集群模式或者单独模式, 可选项:cluster/standalone,默认值cluster |
-e NACOS_SERVER_PORT=8848 | nacos服务端口 |
-e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" | nacos集群地址 |
-e SPRING_DATASOURCE_PLATFORM=mysql | 以mysql为nacos做数据持久化 |
-e MYSQL_SERVICE_HOST=192.168.3.215 | mysql地址 |
-e MYSQL_SERVICE_PORT=3306-e | mysql访问地址 |
-e MYSQL_SERVICE_USER=root | mysql账号 |
-e MYSQL_SERVICE_PASSWORD=root | mysql密码 |
-e MYSQL_SERVICE_DB_NAME=nacos_config | mysql使用库 |
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' | mysql常用连接参数 |
-e NACOS_SERVER_IP=192.168.3.218 | nacos单机注册地址 |
-v /usr/local/software/nacos/logs:/home/nacos/logs | 挂在nacos运行日志 |
--privileged=true | 使用root权限运行容器 |
--restart=always | 容器自动运行 |
--name nacos3 | 容器名字 |
nacos/nacos-server:2.0.2 | 使用docker镜像 |
2.4 访问页面查看是否运行成功:IP:8848/nacos
登录账号:nacos/nacos(正式运行的时候别忘了改密码)
2.5 查看容器运行状态
集群管理 > 节点列表 查看集群运行状态
3. 安装nginx 做nacos负载均衡(192.168.3.215)
3.1 拉去nginx镜像
docker pull nginx:latest
3.2 创建nginx配置文件
mkdir -p /usr/local/software/nginx/conf touch /usr/local/software/nginx/conf/nginx.conf
3.3 nginx配置文件详情
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; upstream nacos8848 { server 192.168.3.216:8848; server 192.168.3.217:8848; server 192.168.3.218:8848; } upstream nacos9848 { server 192.168.3.216:9848; server 192.168.3.217:9848; server 192.168.3.218:9848; } server { listen 8848; location / { proxy_pass http://nacos8848; } } server { listen 9848; location / { proxy_pass http://nacos9848; } } sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
3.4 运行nginx命令
docker run -d \ -p 8848:8848 \ -p 9848:9848 \ --privileged=true \ --restart=always \ -v /usr/local/software/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ --name nacos-nginx \ nginx:latest
3.5 访问地址,查看nginx是否部署成功
http://192.168.3.215:8848/nacos
nacos 集群部署成功
4. 捐赠支持
你可以请作者喝杯咖啡表示鼓励
标签:SERVICE,nacos,192.168,8848,nginx,集群,MYSQL,docker From: https://www.cnblogs.com/sunxun001/p/17438179.html