nacos二进制集群部署
一、服务器配置 jdk 环境
具体可以参考 https://www.cnblogs.com/scfssq/p/17510894.html
cd /usr/local
mkdir java
cd java
#上传jdk 软件包 jdk-8u371-linux-x64.tar.gz
#解压软件包
tar xf jdk-8u371-linux-x64.tar.gz
#会解压出一个 jdk1.8.0_371 目录
#配置环境变量
vim /etc/profile
#在文件末尾追加
JAVA_HOME=/usr/local/java/jdk1.8.0_371
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
#使环境变量生效
source /etc/profile
二、安装nacos
1、准备mysql 创建 nacos 库 并执行sql 文件
docker run -id -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=12345 mysql:5.7
去下面网站获取sql 文件
https://github.com/alibaba/nacos/blob/2.2.0/config/src/main/resources/META-INF/nacos-db.sql
2、上传nacos 包
nacos-server-2.2.0.tar.gz
3、解压nacos包
tar xf nacos-server-2.2.0.tar.gz
# 解压后会在当前目录下生成一个 nacos 目录
3、进入到nacos的conf 目录 编辑配置文件
cd nacos/conf/
a.修改 cluster.conf 文件
修改集群的ip + 端口配置
#如果以example 结尾 文件不生效
cp cluster.conf.example cluster.conf
vim cluster.conf
# 修改为集群的ip + 端口
#it is ip
#example
192.168.0.165:8848
192.168.0.166:8848
192.168.0.167:8848
b.修改 application.properties文件
vim application.properties
#这个端口与上面那个文件的端口要对应 如果上面修改了 这里也需要修改
server.port=8848
#打开mysql 的配置
spring.datasource.platform=mysql
db.num=1
#修改数据库的 ip 端口 用户 密码
db.url.0=jdbc:mysql://192.168.0.165:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=nacos
4、把修改好的nacos 传给其他服务器
# 目录自定义
scp -r nacos 192.168.0.167:/opt/
scp -r nacos 192.168.0.168:/opt/
#如果修改了端口,则需要修改配置文件的端口
5、进入到bin 目录 启动nacos
cd bin
sh startup.sh
#执行完 会有这两条信息 查看给的日志文件 确定nacos 是否启动成功
nacos is starting with cluster
nacos is starting,you can check the /root/nacos/logs/start.out
cat /root/nacos/logs/start.out
# 如果没有报错 并看到 successfully 则启动成功 可以去页面访问
2023-09-21 11:37:49,046 INFO Nacos is starting...
2023-09-21 11:37:49,507 INFO Nacos started successfully in cluster mode. use external storage
6、访问页面即可
分别访问3个页面,确保能够访问
账号密码: nacos nacos
然后在一个节点的页面进行操作 即可自动同步到其他节点
7、配置nginx实现负载均衡
upstream nacos-server{
server 192.168.0.165:8848;
server 192.168.0.166:8848;
server 192.168.0.167:8848;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://nacos-server/nacos/;
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 REMOTE-HOST $remote_addr;
}
}