基于CentOS Stream 9平台搭建Nacos2.4.0.1集群,并使用OpenResty反向代理集群,GRPC协议配置

news2024/12/23 14:03:34

目录展示

    • 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

nacos


3.修改配置

3.1分别修改下启动类中JDK路径以及启动大小
vi /opt/coisini/nacos-cluster/nacos8140/bin/startup.sh 

ESC状态下 SHIFT:set number可以显示行号

30行 jdk路径
jdk

60 行 默认集群模式启动
60

98行 启动大小,可以改小一点,原来2G,毕淼内存不够报错,可以自行修改
98

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

6处

修改端口

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=true

The 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
sql

数据库

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

集群IP配置

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

jiaoben1

按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,主端口为814085508960
        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

nginx
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

hostname
可以修改主机名称(修改的话记得reboot重启才能生效):

vi /etc/hostname

修改hosts将localhost和主机名对应

 vi /etc/hosts

添加:

127.0.0.1  localhost  coisini

添加
查看是否正常显示127.0.0.1

hostname -i

-i

hostnamectl

ctl


部署完毕,感谢阅览~
END


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL注入实例(sqli-labs/less-9)

0、初始页面 1、爆库名 使用python脚本 def inject_database1(url):name for i in range(1, 20):low 32high 128mid (low high) // 2while low < high:payload "1 and if(ascii(substr(database(),%d,1)) > %d ,sleep(2),0)-- " % (i, mid)res {"…

项目管理证书 PMP 的含金量高吗?详解分析

有用就是好的&#xff0c;我觉得PMP在项目管理领域非常实用。特别是对我这样刚入门的新手来说&#xff0c;PMP证书和项目管理思维方式对我有很大帮助。因为我刚开始接触这个领域&#xff0c;所以能够接受正确的思维指引&#xff0c;比起那些有经验但可能存在错误思维的经理来说…

word操作技巧

查看word的标题和大纲 参考自&#xff1a; ​​​

C++ 80行 极简扫雷

一共5346个字符&#xff0c;MinGW编译通过&#xff08;强烈不建议写这种代码&#xff01;&#xff01;&#xff01;&#xff09; 压行规则&#xff1a;一行不超过80个字符 代码&#xff1a; #include<windows.h> #include<stdio.h> #include<time.h> #def…

JVM知识总结(垃圾收集算法)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 垃圾收集算法 分代收集理论 分代思想就是将堆分为新生代和老年代…

Tkinter 转载 (来自C语言中文网)

一个最简单的Tkinter程序至少应包含以下4个部分&#xff1a; 导入tkinter模块、创建主窗口、也称root窗口&#xff08;即根窗口&#xff09;、添加人机交互控件&#xff0c;同时编写相应的事件函数、通过主循环&#xff08;mainloop&#xff09;来显示主窗口。 以上&#xff…

[Git] fatal: the remote end hung up unexpectedly

1 问题介绍 在使用Git进行代码管理和版本控制的过程中&#xff0c;许多开发者可能会遇到这样一个错误提示&#xff1a;fatal: the remote end hung up unexpectedly。这是一种常见的错误&#xff0c;通常出现在将本地代码推送&#xff08;push&#xff09;到远程仓库&#xff…

新加坡物理服务器详细测评数据

新加坡物理服务器因其地理位置优越、网络连接质量高以及数据中心设施完善等因素&#xff0c;成为了许多企业和个人选择托管其业务的理想之地。以下是对新加坡物理服务器的一些详细测评数据的科普文&#xff0c;旨在帮助读者更好地了解这类服务器的性能和特点。 新加坡物理服务器…

智能制造与工业物联网CC2530——串口通讯、定时器唤醒

一、项目目的&#xff1a; 1.1 任务1&#xff1a;ZigBee 模块串口通信 任务背景&#xff1a; 熟悉 ZigBee 模块的硬件接口是使用该技术的基础。通过学习如何利用 IAR 开发环境设计程序&#xff0c;可以实现 CC2530 与 PC 机终端之间的串口通信&#xff0c;从而更好地理解和应用…

中断、异常

文章目录 概念CPU怎么直到中断/异常跳过来执行哪一个函数呢&#xff1f;LR 中断硬件框架&#xff1a;对于F103这块芯片&#xff0c;如果要PA0发出中断&#xff0c;那要做的操作有&#xff1f;GPIO中断编程具体代码 概念 中断属于一种异常 保存现场、处理异常&#xff08;中断…

C# 植物大战僵尸---杂交版

开发框架&#xff1a;.Net Fra,ework4.0 游戏名称&#xff1a;植物大战僵尸-杂交版 游戏介绍&#xff1a;植物大战僵尸-杂交版是一款结合了经典塔防游戏《植物大战僵尸》的元素和创新杂交机制的游戏。玩家需要种植各种植或英雄物来抵御一波又一波的僵尸入侵。游戏的特色在于各…

迅为RK3588开发板可以实现双屏同显、双屏异显、三屏同显、三屏异显、标异屏切换

RK3588可以实现双屏同显、双屏异显、三屏同显、三屏异显、标异屏切换这主要取决于RK3588芯片内置了VOP控制器&#xff0c;支持三路视频同时输出可有效提高行业定制的拓展性。

《码农职场》(IT人求职就业手册)导读和理性书评

《码农职场》是为IT行业求职者量身定制的一本实用指南&#xff0c;涵盖了从求职准备到成功就业的全方位内容。书中分为“职前调整”和“就业指南”两大部分&#xff0c;每一部分都详尽地介绍了求职过程中的各个关键环节&#xff0c;旨在帮助求职者在竞争激烈的职场中脱颖而出。…

锡废水再生回收的回收处理

锡废水再生回收是一个涉及环境保护和资源再利用的重要过程&#xff0c;主要目的是从含有锡的废水中提取有价值的锡资源&#xff0c;同时减少环境污染。以下是对锡废水再生回收的详细解析&#xff1a; 一、锡废水再生回收的重要性 环境保护&#xff1a;回收废水中的锡可以减少对…

C# Null 合并运算符 ??

int&#xff1f; 在 C# 中&#xff0c;int? 是一个可空的 int 类型&#xff0c;它能够存储一个 32 位带符号整数或者 null 值。当你声明一个 int? 类型的变量并将其初始化为 null&#xff0c;你实际上是在创建一个可以容纳整数值的变量&#xff0c;但是初始时并没有赋予它任…

C++转Java基础知识

目录 1. Java基础知识 1.1 JDK和JVM 1.2 Java基础代码演示 1.3 Java中的注释 1.4 Java中的关键字 1.5 Java中的println和print的区别 2. Java中的数据类型 2.1 常量 2.2 标识符 2.3 变量 2.4 类型转换 2.5 自动类型转换 2.6 强制类型转换 3. 运算符 3.1 自增运算…

彻底删除和安装docker和docker-compose

一、Docker安装和卸载 1.1 离线安装docker 1.1.1 下载docker安装包 1.1.2 上传docker到服务器目录/opt/ 1.1.3 解压docker-19.03.9.tgz 进入opt目录解压docker-19.03.9.tgz 1.1.4 解压的docker文件夹全部移动至/usr/bin目录 1.1.5 将docker注册为系统服务 在/usr/lib/syst…

C++——多态经典案例(一)组装电脑

案例&#xff1a;小明打算买两台组装电脑&#xff0c;假设电脑零部件包括CPU、GPU和内存组成。 一台电脑使用intel的CPU、GPU和内存条 一台电脑使用Huawei的CPU、GPU和Intel的内存条 分析&#xff1a;使用多态进行实现 将CPU、GPU和内存条定义为抽象类&#xff0c;内部分别定义…

【LeetCode刷题笔记】LCR.27 回文链表

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

平价蓝牙耳机哪款具有超高的性价比?四个评分超高的爆款推荐!

随着现代人对蓝牙耳机的需求越来越大&#xff0c;是不是每次看到琳琅满目的蓝牙耳机都眼花缭乱的&#xff0c;特别是预算有限还要追求音质与耐用的小伙伴&#xff0c;不知道平价蓝牙耳机哪款具有超高的性价比&#xff1f;别怕&#xff0c;今天我这个蓝牙耳机小达人就来给你们带…