云服务器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 这些开发中容易误用的。
相关推荐
2401_8685347831 分钟前
软考网络规划设计师SSL协议知识点详解
服务器·网络
thefool11226644 分钟前
TCP 1
java·1024程序员节
Escalating_xu1 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
润滑卫士1 小时前
油液多参数融合故障诊断:数据级融合与决策级融合方法
运维
李纲明2 小时前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
todoitbo2 小时前
在 Ubuntu ARM64 上运行 Q1 V3.0 MuJoCo 模型:加载、步进和单执行器响应
linux·运维·ubuntu·ai·机器人·仿真教程·启元
AR-26710-3 小时前
Linux Day26——传输层与三次握手
linux·运维
金銀銅鐵3 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手3 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
额额额对了4 小时前
嵌入式 Linux 实战:i.MX6ULL 上的 CAN 通信与摄像头采集
linux·运维·服务器