目录展示
- Nacos2.4.0.1集群搭建
- 1. 下载
- 2. 解压
- 3.修改配置
- 3.1分别修改下启动类中JDK路径以及启动大小
- 3.2 分别配置数据源
- 修改端口
- 去掉前面的#注释(修改数据库地址、数据库用户名、密码)
- If use MySQL as datasource:
- Count of DB:
- Connect URL of DB:
- 密钥鉴权配置:(不配置nacos就不需要登录)
- If turn on auth system:
- Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
- The two properties is the white list for auth and used by identity the request from other server.
- The default token (Base64 String):
- 3.3 创建nacos数据库
- 3.4 修改cluster.conf配置
- 3.4.1 复制并修改
- 3.4.2 编辑文件,修改三台主机地址
- 3.4.3 分别放入另外两个nacos的conf目录下:
- 4. 启动集群
- 访问地址:http://IP:端口/nacos/
- 如果设置了鉴权,则是:
- 根据官方的描述,密码输入框输入密码进行密码初始化:
- `如果直接点击了登录,会随机生成密码,一定要注意保存`:
- 登录之后,在权限控制这里可以修改密码
- 5. 设置服务开机启动
- 5.1 创建脚本:
- 5.2 添加内容:
- 5.3 赋权:
- 5.4 开机自启
- 新建服务文件
- 添加内容:
- 赋权:
- 设置开机自启:
- 重载配置
- 重启尝试脚本可行性(reboot)
- 6. OpenResty
- 6.1 下载
- 6.2 安装
- 6.3 进入目录
- 6.5 配置nginx.conf文件
- `底部新增nacos的grpc协议配置!!!`
- 6.6 重新加载配置文件
- 6.7 设置服务开机自启:
- 6.8 设置开机自启:
- 7. 服务器相关配置、避免nacos连接出错
- 7.1 准备工作
Nacos2.4.0.1集群搭建
1. 下载
官网Github:
官方nacos.io
官方集群部署文档
新建目录
mkdir /opt/coisini/nacos-cluster
进入目录
cd /opt/coisini/nacos-cluster
在线下载
wget https://github.com/alibaba/nacos/releases/download/2.4.0.1/nacos-server-2.4.0.1.tar.gz
2. 解压
因为在同一台机器,伪集群,所以就改端口,
(1) 解压、重命名区分(也可以先配置好一台,然后再拷贝两份,改下端口就行)
至于为啥没8848,因为集群启动报错,提示8848端口占用....
至于为啥端口设置的这么离谱,问就是官方设置端口占用有偏移量1000±,然后(主要是我看不到到底是那个端口被占用了,去查又没有…搞玄学来的,,之前设置8840、8850、8860这种连续端口,启动的时候报一堆错,差点没把我送走,折腾了好久。后来实在不甘心,随便整个端口跑一下,结果就跑起来了。总结:不要使用连续端口
)
Caused by: io.grpc.netty.shaded.io.netty.channel.unix.Errors$NativeIoException: bind(…) failed: Address already in use
tar -zxvf nacos-server-2.4.0.1.tar.gz
mv nacos nacos8140
(2)
tar -zxvf nacos-server-2.4.0.1.tar.gz
mv nacos nacos8550
(3)
tar -zxvf nacos-server-2.4.0.1.tar.gz
mv nacos nacos8960
3.修改配置
3.1分别修改下启动类中JDK路径以及启动大小
vi /opt/coisini/nacos-cluster/nacos8140/bin/startup.sh
ESC状态下 SHIFT
:set number
可以显示行号
30行 jdk路径
60 行 默认集群模式启动
98行 启动大小,可以改小一点,原来2G,毕淼内存不够报错,可以自行修改
ESC :wq保存并退出
另外两台替换一下 y:
cp /opt/coisini/nacos-cluster/nacos8140/bin/startup.sh /opt/coisini/nacos-cluster/nacos8550/bin/
cp /opt/coisini/nacos-cluster/nacos8140/bin/startup.sh /opt/coisini/nacos-cluster/nacos8960/bin/
3.2 分别配置数据源
修改端口号,连接MySQL数据库地址
vi /opt/coisini/nacos-cluster/nacos8140/conf/application.properties
vi /opt/coisini/nacos-cluster/nacos8550/conf/application.properties
vi /opt/coisini/nacos-cluster/nacos8960/conf/application.properties
修改端口
server.port=8140
去掉前面的#注释(修改数据库地址、数据库用户名、密码)
If use MySQL as datasource:
spring.datasource.platform=mysql
Count of DB:
db.num=1
Connect URL of DB:
db.url.0=jdbc:mysql://192.168.20.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
密钥鉴权配置:(不配置nacos就不需要登录)
更多内容参考官方文档:鉴权
生成Base64编码在线网站:https://base64.us/
Base64不少于32 位(英文和数字组合),不然启动会报jwt鉴权错误😭
3台鉴权配置需要保持一致
If turn on auth system:
nacos.core.auth.enabled=true
Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=coisini
nacos.core.auth.server.identity.value=coisini
nacos.core.auth.plugin.nacos.token.cache.enable=trueThe default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.key=Y29pc2luaS5jbmNvaXNpbmkuY25jb2lzaW5pLmNu
3.3 创建nacos数据库
新建
nacos_config
库
sql脚本在对应的conf目录下 mysql-schema.sql
,放到本地创建数据库,执行一下,导入到新建的数据库中
例如:ll /opt/coisini/nacos-cluster/nacos8140/conf
3.4 修改cluster.conf配置
就是将 conf目录下的cluster.conf.example 文件改为cluster.conf文件
然后修改文件里的集群地址
3.4.1 复制并修改
cp /opt/coisini/nacos-cluster/nacos8140/conf/cluster.conf.example /opt/coisini/nacos-cluster/nacos8140/conf/cluster.conf
3.4.2 编辑文件,修改三台主机地址
vi /opt/coisini/nacos-cluster/nacos8140/conf/cluster.conf
ESC :wq保存并退出
3.4.3 分别放入另外两个nacos的conf目录下:
cp /opt/coisini/nacos-cluster/nacos8140/conf/cluster.conf /opt/coisini/nacos-cluster/nacos8550/conf
cp /opt/coisini/nacos-cluster/nacos8140/conf/cluster.conf /opt/coisini/nacos-cluster/nacos8960/conf
4. 启动集群
开放端口:
firewall-cmd --zone=public --add-port=8140/tcp --permanent
firewall-cmd --zone=public --add-port=8550/tcp --permanent
firewall-cmd --zone=public --add-port=8960/tcp --permanent
firewall-cmd --reload
记得开放端口或者直接关闭防火墙:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
--zone
# 作用域
--add-port=3306/tcp
# 添加端口,格式为:端口/通讯协议
--permanent
# 永久生效,没有此参数重启后失效
查看开放的端口:
cat /etc/firewalld/zones/public.xml
或者直接
停止防火墙
systemctl stop firewalld
永久关闭防火墙
systemctl disable firewalld
防火墙状态
systemctl status firewalld
各个nacos启动命令
sh /opt/coisini/nacos-cluster/nacos8140/bin/startup.sh
sh /opt/coisini/nacos-cluster/nacos8550/bin/startup.sh
sh /opt/coisini/nacos-cluster/nacos8960/bin/startup.sh
可查看对应启动日志:
tail -f /opt/coisini/nacos-cluster/nacos8140/logs/start.out
访问地址:http://IP:端口/nacos/
例如:http://192.168.31.16:8140/nacos/
如果设置了鉴权,则是:
根据官方的描述,密码输入框输入密码进行密码初始化:
如果直接点击了登录,会随机生成密码,一定要注意保存
:
登录之后,在权限控制这里可以修改密码
相关命令
非集群:
单机启动sh startup.sh -m standalone
集群模式:
使用内置数据源
sh startup.sh -p embedded
使用外置数据源
sh startup.sh
5. 设置服务开机启动
5.1 创建脚本:
vi nacos-cluster.sh
5.2 添加内容:
#!/bin/bash
case $1 in
"start" )
#echo ========= 启动nacos集群 =========
#echo ========= 启动nacos8140 =========
sh /opt/coisini/nacos-cluster/nacos8140/bin/startup.sh
#echo ========= 启动nacos8550=========
sh /opt/coisini/nacos-cluster/nacos8550/bin/startup.sh
#echo ========= 启动nacos8960 =========
sh /opt/coisini/nacos-cluster/nacos8960/bin/startup.sh
;;
"stop" )
#echo ========= 停止nacos集群 =========
#echo========= 停止nacos8140 =========
/opt/coisini/nacos-cluster/nacos8140/bin/shutdown.sh
#echo========= 停止nacos8550=========
/opt/coisini/nacos-cluster/nacos8550/bin/shutdown.sh
#echo ========= 停止nacos8960 =========
/opt/coisini/nacos-cluster/nacos8960/bin/shutdown.sh
;;
esac
5.3 赋权:
chmod u+x nacos-cluster.sh
脚本单独使用命令
启动:sh nacos-cluster.sh start
停止:sh nacos-cluster.sh stop
5.4 开机自启
准备设置一个.service,开机执行这个脚本文件,以此实现自启效果
系统启动脚本目录 /etc/systemd/system/
新建服务文件
vi /etc/systemd/system/nacos-cluster.service
添加内容:
[Unit]
Description=nacos-cluster
After=network.target remote-fs.target nss-lookup.target mysqld.service zookeeper.service kafka.service
[Service]
Type=forking
ExecStartPre=/bin/sleep 15
ExecStart=sh /opt/coisini/nacos-cluster/nacos-cluster.sh start
ExecStop=sh /opt/coisini/nacos-cluster/nacos-cluster.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
按ESC :wq保存并退出
赋权:
chmod 754 /etc/systemd/system/nacos-cluster.service
设置开机自启:
systemctl enable nacos-cluster.service
重载配置
systemctl daemon-reload
重启尝试脚本可行性(reboot)
重启后等待一会,nacos启动要点世界
systemctl status nacos-cluster.service
6. OpenResty
通过使用Lua扩展NGINX的可扩展Web平台
中文官网:http://openresty.org/cn/
支持的lua模块: http://openresty.org/cn/components.html
下载页面:https://openresty.org/cn/linux-packages.html#centos
6.1 下载
wget https://openresty.org/package/centos/openresty2.repo
sudo mv openresty2.repo /etc/yum.repos.d/openresty.repo
sudo yum check-update
6.2 安装
sudo yum install -y openresty
必要环境:
yum install pcre-devel openssl-devel gcc curl zlib-devel
默认安装地址
/usr/bin/openresty
6.3 进入目录
cd /usr/local/openresty/
6.5 配置nginx.conf文件
vi /usr/local/openresty/nginx/conf/nginx.conf
添加内容:
upstream nacoscluster{
server 192.168.31.16:8140;
server 192.168.31.16:8550;
server 192.168.31.16:8960;
}
server {
# post
listen 8999;
server_name localhost;
location /nacos/{
proxy_pass http://nacoscluster/nacos/;
}
}
底部新增nacos的grpc协议配置!!!
# nacos的grpc协议配置
stream {
upstream nacoscluster-grpc{
# nacos2版本,grpc端口与要比主端口多1000,主端口为8140、8550、8960
server 192.168.20.128:9140 weight=1;
server 192.168.20.128:9550 weight=1;
server 192.168.20.128:9960 weight=1;
}
server{
listen 9999;
proxy_pass nacoscluster-grpc;
}
}
ESC :wq保持并退出
cd /usr/local/openresty/nginx/sbin/
openresty启动命令:
./nginx
6.6 重新加载配置文件
./nginx -s reload
开放端口:
firewall-cmd --zone=public --add-port=8999/tcp --permanent
firewall-cmd --reload
服务调用访问地址:http://192.168.31.16:8999/nacos/
6.7 设置服务开机自启:
vi /etc/systemd/system/openresty.service
添加:
[Unit]
Description=openresty
After=network.target remote-fs.target nss-lookup.target mysqld.service zookeeper.service kafka.service nacos-cluster.service
[Service]
Type=forking
ExecStart=/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
ESC :wq保存并退出
6.8 设置开机自启:
systemctl enable openresty.service
相关命令记录:
禁止开机启动:systemctl disable openresty.service
启动服务:systemctl start openresty.service
停止服务:systemctl stop openresty.service
重启服务:systemctl restart openresty.service
查看服务状态:systemctl status openresty.service
查看所有已启动的服务:systemctl list-units --type=service
7. 服务器相关配置、避免nacos连接出错
7.1 准备工作
确保localhost和主机名对应 避免nacos连接出错
查看主机名:
hostname
可以修改主机名称(修改的话记得reboot重启才能生效):
vi /etc/hostname
修改hosts将localhost和主机名对应
vi /etc/hosts
添加:
127.0.0.1 localhost coisini
查看是否正常显示127.0.0.1
hostname -i
hostnamectl
部署完毕,感谢阅览~
END