云服务器nacos搭建-集群&持久化

云服务器nacos搭建-单机-CSDN博客默认:MODE="cluster"集群方式启动,如果单机启动需要设置-m standalone参数,否则,启动失败。账号密码:nacos/nacos。https://blog.csdn.net/guo13313/article/details/166994619?sharetype=blogdetail&sharerId=166994619&sharerefer=PC&sharesource=guo13313&spm=1011.2480.3001.8118

部署架构图
  • 实际生产环境中不同节点部署在不同机器上。
  • 在此只做演示练习,在同一台机器上进行部署,分配不同的端口。

|-----------|------|---|
| 节点目录 | 端口 | |
| nacos8818 | 8818 | |
| nacos8828 | 8828 | |
| nacos8838 | 8838 | |

从之前的单机部署,先复制一个节点8818

#创建存放集群节点的目录

mkdir nacos_cluster

复制

cp -r nacos8848/ nacos_cluster/nacos8818

持久化改造

nacos自带嵌入式的derby数据库作为存储,多节点集群部署存在一致性问题,解决方案为:采用集中存储方式--mysql

1.nacos/conf 目录下找到nacos-mysql.sql文件

2.执行脚本

准备一个mysql数据库,用于执行脚本 mysql-seata

复制代码
docker run -d \
-p 3336:3306 \
-v /mysql/conf:/etc/mysql/conf.d \
-v /mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-demo \
mysql:8.0.30

执行脚本

执行完,生成如下12个表

修改mysql配置

nacos/conf目录下找到 application.properties

注释放开、修改

先·改造单台nacos集群模式

修改堆内存大小配置(内存够用可不用配置)

/bin目录下的startup.sh修改

:set nu (93行修改)

修改cluster.conf配置

类似

192.168.6.100:8818

192.168.6.100:8828

192.168.6.100:8838

再·复制其他节点

上面所有配置修改完成后,复制另外2个节点并修改端口

#复制节点

cp -r nacos8818/ nacos8828/

cp -r nacos8818/ nacos8838/

#修改端口 (8828/8838)

vim nacos8828/conf/application.properties

vim nacos8838/conf/application.properties

启动三台机器

./nacos8818/bin/startup.sh

./nacos8828/bin/startup.sh

./nacos8838/bin/startup.sh

查看进程

ps -ef |grep nacos

任意节点访问nacos

部署了3个节点,多出一个内网ip+端口,修复见末尾部分

nginx 负载均衡

准备一个nginx

复制代码
# 拉取镜像并启动

docker run -d --name=nginx6666 -p 6666:6666 -v nginx_conf:/etc/nginx -v nginx_html:/usr/share/nginx/html -v nginx_logs:/var/log/nginx nginx

找到配置文件nginx.conf

docker volume ls

docker inspect nginx_conf

修改配置

复制代码
upstream nacoscluster{ 
    server 8.160.170.126:8818;
    server 8.160.170.126:8828;
    server 8.160.170.126:8838;
}

server{               
    listen 6666;
    server_name 8.160.170.126;
    location / {
         proxy_pass http://nacoscluster;                        
    }
# 其他配置

docker restart nginx

访问

复制代码
http://8.160.170.126:6666/nacos

提示错误:

ERR_UNSAFE_PORT
Chrome/Edge 浏览器默认把 6666 标记为不安全端口,直接拦截访问,不会发起网络请求。 参考浏览器黑名单端口列表:6666 在里面(历史上木马常用端口)。

调整其他端口

复制代码
docker run -d --name=nginx8088 -p 8088:8088 -p 80:80 -v nginx_conf:/etc/nginx -v nginx_html:/usr/share/nginx/html -v nginx_logs:/var/log/nginx nginx

同步修改配置后启动,浏览器访问

复制代码
upstream nacoscluster{ 
    server 8.160.170.126:8818;
    server 8.160.170.126:8828;
    server 8.160.170.126:8838;
}

server{               
    listen 8088;
    server_name 8.160.170.126;
    location / {
         proxy_pass http://nacoscluster;                        
    }
# 其他配置
可能遇到的问题
启动报错

--cluster.conf忘记配置,./startup.sh启动会报错上面的错误

集群节点多了 内网+端口

部署了3个节点,上面多出了一个,是内网ip+端口,需要在application. 增加配置

Specify local server's IP:

nacos.inetutils.ip-address=公网ip

nacos.server.ip=公网ip

/conf下的cluster.conf确认是否自动添加了内网ip

需要删除自动添加的内网ip
删除 protocol的内容

rm -rf nacos8818/data/protocol

rm -rf nacos8828/data/protocol

rm -rf nacos8838/data/protocol

修改后重新启动nacos

ps -ef|grep nacos

kill 368 471 32447

./nacos8818/bin/startup.sh

./nacos8828/bin/startup.sh

./nacos8838/bin/startup.sh

最终实现只有3个节点了

部署了3个节点,上面多出了一个,是内网ip+端口,需要在application. 增加配置

Specify local server's IP:

nacos.inetutils.ip-address=公网ip

nacos.server.ip=公网ip

/conf下的cluster.conf确认是否自动添加了内网ip

需要删除自动添加的内网ip
删除 protocol的内容

rm -rf nacos8818/data/protocol

rm -rf nacos8828/data/protocol

rm -rf nacos8838/data/protocol

修改后重新启动nacos

ps -ef|grep nacos

kill 368 471 32447

./nacos8818/bin/startup.sh

./nacos8828/bin/startup.sh

./nacos8838/bin/startup.sh

最终实现只有3个节点了

端口黑名单

浏览器限制,直接阻止请求(6666)

参考浏览器黑名单端口列表:6666 在里面(历史上木马常用端口)。

  • 开发环境推荐端口‌:3000-3999(前端框架默认)、5000-5999(后端 API)、8000-8999(测试环境)、9000-9999(工具服务)。
  • ‌绝对避开‌:上表中的所有端口,尤其是 6665-6669、6000、10080 这些开发中容易误用的。
相关推荐
江江爱编程1 小时前
java零基础保姆级教学01
java·开发语言
牢姐与蒯1 小时前
一点小碎片——每个线程独有的东西——上下文+栈
linux·运维·服务器
9624561 小时前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
vx_Biye_Design1 小时前
expressDeepSeek社团咨询助手的学生社团管理系统60746-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·课程设计·express
vx_Biye_Design1 小时前
springboot宠物领养与救助平台64334-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·课程设计·宠物
泡茶喝茶写代码2 小时前
A股量化数据工程:从 REST 接口到策略信号(第 5 篇):板块成分股映射与对齐
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据接口
vx_Biye_Design2 小时前
django就业信息推荐系统61953-计算机课程设计、毕业设计
java·vue.js·spring boot·python·架构·django·课程设计
Elastic 中国社区官方博客2 小时前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
迪康coolmu2 小时前
屏幕水印与防拍照落地:从水印类型到泄密溯源的完整配置
运维·网络·安全·网络安全·数据安全