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

news2024/11/15 6:58:13

目录展示

    • 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文件
      • 6.6 重新加载配置文件
      • 6.7 设置服务开机自启:
      • 6.8 设置开机自启:


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
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/;
        }
    }

地址

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


部署完毕,感谢阅览~
END


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

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

相关文章

空气质量传感器 - 从零开始认识各种传感器【第二十八期】

空气质量传感器|从零开始认识各种传感器 1、什么是空气质量传感器? 空气质量传感器是一种检测空气中污染物浓度的设备,广泛应用于环境监测、智能家居、工业控制和健康管理等领域。 2、空气质量传感器是如何工作的? 对于每个人都关心的空气质…

java学习day17MyBatis

Mybatis 数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作 MyBatis支持定制化SQL、存储过程以及高级映射,可以在实体类和…

【socket编程】预备知识 {IP地址和MAC地址;端口号;认识TCP/UDP协议;网络字节序;socket编程入门}

一、IP地址和MAC地址 源IP地址和目的IP地址 IP地址用于唯一标识网络中的一台主机在IP数据包头部中(网络层), 有两个IP地址, 分别叫做源IP地址, 和目的IP地址这两个地址在网络传输过程中是不变的,因为它们是数据包的一部分,并且用…

Serverless 1

一、云原生应用 云原生应用覆盖到: 大数据,人工智能,边缘计算,区块链等 服务代理:envoy API 网关:APISIX 服务网格:Istio 服务发现:CoreDNS 消息和流式处理:kafka Serve…

打造高效校园办公:智慧校园行政办公合同类型

智慧校园行政办公中的合同类型功能是为了满足校园内各种合同管理需求而设计的一套数字化管理系统。该功能旨在提高合同管理效率,简化合同处理流程,确保合同内容的准确性和合规性。 智慧校园行政办公中的合同类型功能支持多种类型的合同管理,包…

【书生大模型实战营第三期 | 基础岛第1关-书生大模型全链路开源体系】

学习心得:《书生浦语大模型全链路开源开放体系》 摘要 通过观看哔哩哔哩上的《书生浦语大模型全链路开源开放体系》视频,我对开源大模型及其工具链有了更深入的了解。视频由社区贡献者汪周谦讲解,不仅介绍了书生浦语大模型的架构和功能&…

Excel公式与函数(运算符,计算限制,错误检查)(一)

公式 公式概念 公式 是以“”号为引导,用过运算符按照一定的顺序组合进行数据运算处理的等式,函数 则是按特定算法执行计算的产生一个或一组结果的预定义的特殊公式。 公式组成要素 公式的组成要素为“”,运算符,单元格引用&a…

基于STM32F407+NBIOT+华为云IOT平台设计的环境检测系统

基于STM32F407NBIOT华为云IOT平台设计的环境检测系统实现的功能: 【1】能够采集本地环境的温度、湿度、烟雾浓度,火光信息,在OLED显示屏上显示。 如果检测到烟雾、温度、火光超过阀值会触发蜂鸣器报警。 【2】能够通过NBIOT将本地设备采集的信…

LE-50821F/FA激光扫描传感器|360°避障雷达之性能参数与配置清单说明

LE系列激光扫描传感器|360避障雷达涵盖LE-50711、LE-50711F、​ LE-50621、LE-50821F、​LE-50621F、LE-50821FA、LE-50711FA、LE-50621FA等型号,广泛应用于自动化工厂、物流与仓储、汽车制造与物流、机械设备、能源与环境等领域的环境感知、高精度定位(…

【dockerpython】亲测有效!适合新手!docker创建conda镜像+容器使用(挂载、端口映射、gpu使用)+云镜像仓库教程

文章目录 docker基本概念简介配置镜像加速源创建conda镜像1. 写 Dockerfile文件2. 创建镜像3. 创建容器并测试 容器的使用1. wsl挂载2. 端口映射3. 补充-gpu 云镜像仓库使用1. 登录2. 将本地镜像上传至云镜像仓库3. 从云镜像仓库下载镜像到本地 docker基本概念简介 简单来讲&a…

2024年“华数杯”数学竞赛A题完整解析 | 代码分享

机器臂关节角路径的优化设计 问题一 代码 Matlab clc clear % 参数定义 a [0, 300, 1200, 300, 0, 0]; alpha [0, -90, 0, -90, -90, -90]; d [600, 0, 0, 1200, 0, 0]; theta_min [-160, -150, -200, -180, -120, -180]; theta_max [160, 15, 80, 180, 120, 180]; P_t…

计算机网络(网络层)

网络层概述 网络层是干什么的? 网络层的主要任务是实现不同异构网络互连,进而实现数据包在各网络之间的传输相比于数据链路层的以太网通信,网络层则是将一个个数据链路层连接的以太网通过路由器连接起来。从而实现不同数据链路层的互联。 这…

【Linux】网络基础_3

文章目录 十、网络基础5. socket编程socket 常见APIsockaddr结构简单的UDP网络程序 未完待续 十、网络基础 5. socket编程 socket 常见API // 创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服…

Ubuntu窗口如何自适应VM虚拟机

修改VM的显示设置 1:右击ubuntu计算机,点击设置按钮,进入到设置界面。 2:点击拉伸模式,选择自由拉伸。 以上操作结束之后打开ubuntu虚拟机。 ubuntu屏幕显示设置 进入到ubuntu系统之后,在桌面右击&…

网关与auth微服务缓存打通

文章目录 🌞 Sun Frame:SpringBoot 的轻量级开发框架(个人开源项目推荐)🌟 亮点功能📦 spring cloud模块概览常用工具 🔗 更多信息1.缓存一致性问题1、更新了数据库,再更新缓存2、更…

大数据-68 Kafka 高级特性 物理存储 日志存储概述

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

文献翻译软件哪个好?6个工具让你轻松看懂外语文献

在医学研究领域,文献翻译软件扮演着至关重要的角色。 医学论文、研究报告和临床指南等,往往包含了大量的专业术语和复杂的句子结构,对于非母语者来说,理解这些内容无疑是一项挑战。 幸运的是,随着技术的发展&#xf…

巴黎奥运会8K转播科技为国产品牌自主研发设计

这个夏天,顶流是属于巴黎奥运会中国队的。 20枚金牌、15枚银牌、12枚铜牌......这个数字正随着赛事推进而不停在增加。赛场之上,中国健儿奋力拼搏、捷报频传,令人热血沸腾;赛场之外,另一支来自中国企业的“奥运选手”…

Linux OS:基于阻塞队列的生产者消费者模型

Linux OS:基于阻塞队列的生产者消费者模型 前言一、阻塞队列的大致框架二、生产者向阻塞队列中生产数据三、消费者获取阻塞队列中数据四、总体生产和消费思路及测试代码4.1 单生产单消费4.2 多生产多消费 五、所以代码 前言 阻塞队列是一种常用于实现生产者消费者模…

大模型微调技术PEFT

1. 横向对比 总体概览: 方法Transformer 中如何应用特点Prompt Tuning在输入到Transformer的input文本中添加Prompthard 模式prompt CO-STARP-tuning在输入到Transformer的embedding 层添加Promptsoft 模式 promptAdapter Tuning在 Transformer 中间层插入 Adapt…