#每日一记#Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置
  

sailyang 8109

{{ttag.title}}
本帖最后由 sailyang 于 2021-3-31 15:49 编辑

1、版本选择:您可以在Nacos的官网下载(上边连接)中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.4.1。

2、预备环境准备:Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。64 bit JDK 1.8+;Maven 3.2.x+;集群需要依赖mysql,单机可不必3个或3个以上Nacos节点才能构成集群。3、下载源码或者安装包:[root@bogon ~]# mkdir /usr/local/soft/nacos[root@bogon ~]# cd /usr/local/soft/nacos[root@bogon nacos]# wget https://github.com/alibaba/nacos ... server-1.4.1.tar.gz解压nacos:
[root@bogon nacos]# tar -zxvf  nacos-server-1.4.1.tar.gz二、单击模式运行:1、配置mysql数据库(默认使用的是嵌入式数据库某公司 Derby来存储数据,单击模式可不用配置数据库):(1) 单机模式支持mysql,编辑application.properties文件
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
1.安装数据库,版本要求:5.6.5+2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。[root@bogon nacos]# vim /usr/local/soft/nacos/nacos/conf/application.properties光标下移到spring.datasource.platform=mysql,键盘输入 “i” 进入编辑模式:放开spring.datasource.platform=mysql前面的#,放开db.num=1,db.url.0=,db.user.0,db.password.0=,前面的#。根据自己的数据库和账号、密码进行配置,图下图:

键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。备注:db.num=1 只有一个数据源,根据自身的数据源个数进行配置。
(2)创建数据库(上图中的数据库名为nacos_config):
mysql创建数据库:nacos_config
打开nacos/conf/nacos-mysql.sql文件,将sql语句拷贝到mysql数据库,执行。
2、运行nacos:[root@bogon nacos]# cd /usr/local/soft/nacos/nacos/bin[root@bogon bin]# sh startup.sh -m standalone备注:startup.sh是linux系统的启动执行文件,windows下使用startup.cmd。-m 表示:启动模式。standalone 表示单机模式。 后边不带-m standalone 参数时默认使用集群模式启动。
3、防火墙开放端口(默认的是8848):[root@bogon bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent防火墙重起:
[root@bogon bin]# firewall-cmd --reload4、通过ui查看是否部署成功:浏览器输入:http://ip:8848/nacos/   
三、集群模式运行 --- 生产模式:准备三台服务器,都下载nacos的安装包,且都进行以下1和2的配置(可先配置好一台,其他的进行直接拷贝即可)
1、配置集群配置文件:在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf.example,这是官网给的模板文件,重建cluster.conf文件或者直接更换模板文件的名称,删除.example即可。请每行配置成ip:port。(请配置3个或3个以上节点):
[root@bogon bin]# cd /usr/local/soft/nacos/nacos/conf[root@bogon conf]# cp cluster.conf.example cluster.conf编辑cluster.conf文件:
[root@bogon conf]# vim /usr/local/soft/nacos/nacos/conf/cluster.conf光标下移,键盘输入 “i” 进入编辑模式:
把三个默认的ip和端口进行修改,修改为自己的三个nacos服务ip以及端口,建议三台nacos服务都在不同的服务器上,这样才能真正达到集群高可用。
如下图所示:

备注:由于我只有一台服务器,暂且用不同的端口来实现吧,生产环境不建议。
键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。
2、配置mysql数据库:和单机模式的数据源配置相同(上边单机模式的第一步),这里不再重复。
3、再拷贝2个nacos服务(当前是在同一台机器上,生产环境不建议):[root@bogon ~]# cp -a /usr/local/soft/nacos/nacos /usr/local/soft/nacos/nacos8847[root@bogon ~]# cp -a /usr/local/soft/nacos/nacos /usr/local/soft/nacos/nacos8849备注:当前是在同一台服务器上,使用不用的端口号来区分,所以需要修改相应地端口号,配置文件在nacos/conf/的application.properties文件,此处修改省略。
4、启动服务(三个服务都启动):[root@bogon nacos]# cd /usr/local/soft/nacos/nacos/bin使用内置数据源(没有配置自己的mysql数据源)
[root@bogon bin]# sh startup.sh -p embedded 使用已配置的mysql数据源,集群模式启动(无-m standaone参数,默认是集群模式)
[root@bogon bin]# sh startup.sh备注:参照以上的启动方式,启动另外两个nacos服务。
5、查询nacos启动日志:可通过查看/conf/nacos.log(详细日志)或/conf/start.out(启动记录)查看nacos的启动情况以及运行情况(三个nacos服务的查询方式相同):
[root@bogon bin]# tail -n 200 /usr/local/soft/nacos/nacos/logs/start.out
如下图所示:





上边的信息说明集群模式启动成功。
6、防火墙开放端口:三台机器都要防火墙开放端口,此处和单机的模式相同,此处省略。
7、访问nacos:通过浏览器访问三台nacos:
http://192.168.30.110:8847/nacos
http://192.168.30.110:8848/nacos
http://192.168.30.110:8849/nacos
登录账号:nacos  密码:nacos
三个页面显示如下:



登录以后,查看集群信息:



8、生产者、消费者连接nacos:(1)直连ip模式:
项目中的bootstrap.yml文件,添加一下内容:
复制代码spring:  application:    name: test-producer  cloud:    nacos:      discovery:        server-addr: http://192.168.30.110:8847,http://192.168.30.110:8848,http://192.168.30.110:8849  # 直连ip模式      config:        server-addr: ${spring.cloud.nacos.discovery.server-addr}        file-extension: yaml复制代码 以上的模式,实质不是真正的集群模式,客户端需要指向所有nacos的ip,如果其中由同一台nacos宕机,那么生产者或消费者就一直在报连接超时问题(虽然不影响使用)。
(2)使用nginx配置真正的集群(nginx起到负载均衡的效果,推荐使用):
 下载nginx:    [root@bogon bin]# mkdir /usr/local/soft/nginx[root@bogon bin]# cd /usr/local/soft/nginx[root@bogon nginx]# wget http://nginx.org/download/nginx-1.18.0.tar.gz安装nginx以及所需依赖:[root@bogon nginx]# yum install gcc-c++    # 编译依赖 gcc 环境  可使用 gcc -v 命令查询系统是否安装了gcc,如果已安装,这里可省略[root@bogon nginx]# yum install -y pcre pcre-devel  # 安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码[root@bogon nginx]# yum install -y zlib zlib-devel # zlib库提供了压缩算法,在nginx的各种模块中需要使用gzip压缩[root@bogon nginx]# yum install -y openssl openssl-devel  # nginx支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了https,需要安装 OpenSSL 库[root@bogon nginx]# tar -zxvf nginx-1.18.0.tar.gz   # 解压nginx安装包[root@bogon nginx]# cd nginx-1.18.0     # 进入nginx-1.18.0目录[root@bogon nginx-1.18.0]# ./configure  # 使用默认配置[root@bogon nginx-1.18.0]# make         # 当前目录进行编译,观察是否有报错,如有报错,查看上边的依赖是否安装成功[root@bogon nginx-1.18.0]# make install   # 编译安装执行完以上操作,/usr/local/下回多一个nginx文件夹,这是默认的安装路径。
nginx配置代理转发规则:进入nginx的安装目录,编辑nginx.conf文件:
[root@bogon nginx-1.18.0]# vim /usr/local/nginx/conf/nginx.conf光标下移,键盘输入 “i” 进入编辑模式,找到server位置,替换一下内容:
复制代码upstream nacos_server { # 这里负载均衡,默认的分发策略是线性轮询      server 192.168.30.110:8847;   # 三个nacos服务器的ip和端口      server 192.168.30.110:8848;      server 192.168.30.110:8849;    }    server {        listen       8846;     # 修改nginx监听的端口为8846        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {            proxy_pass http://nacos_server;    # 这个是代理的地址,名字和上边定义的upstream 后边的名字匹配       proxy_set_header Host $host; # 避免http请求中丢失Host头部的情况下Host不被重写的失误,此处很重要,一开始没有此配置时,一直连接不上,同时nginx也打不开。         # root html;        # index index.html index.htm;
}复制代码键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。
启动nginx:[root@bogon nginx-1.18.0]# cd /usr/local/nginx/sbin[root@bogon sbin]# ./nginxnginx常用命令:复制代码   启动nginx:    cd /usr/local/nginx/sbin    ./nginx
    关闭nginx:    cd /usr/local/nginx/sbin    ./nginx -s quit  或者 ./nginx -s stop
    重启nginx:    cd /usr/local/nginx/sbin    ./nginx -s reload
    查看nginx运行状态:    ps aux|grep nginx
    查看nginx服务器日志:    tail -fn 200 /usr/local/nginx/logs/access.log复制代码防火墙开放端口:
[root@bogon sbin]# firewall-cmd --zone=public --add-port=8846/tcp --permanent防火墙重起:
[root@bogon sbin]# firewall-cmd --reload浏览器访问nginx:http://192.168.30.110:8846/nacos
生产者、消费者项目中的bootstrap.yml文件,添加一下内容:复制代码spring:  application:    name: test-producer  cloud:    nacos:      discovery:        server-addr: http://192.168.30.110:8846  # 直接连接nginx,通过nginx实现集群的代理      config:        server-addr: ${spring.cloud.nacos.discovery.server-addr}        file-extension: yaml复制代码启动生产者或消费者,浏览器访问nginx :   http://192.168.30.110:8846/nacos
浏览器访问nacos-8847:    http://192.168.30.139:8847/nacos
浏览器访问nacos-8848:     http://192.168.30.139:8848/nacos
浏览器访问nacos-8849:     http://192.168.30.139:8849/nacos
观察 服务管理 --》服务列表  都存在了微服务的注册信息。

打赏鼓励作者,期待更多好文!

打赏
8人已打赏

飞翔的苹果 发表于 2021-4-7 08:33
  
感谢分享,有助于工作,学习学习
guafeng00 发表于 2021-4-14 08:23
  
发帖辛苦,感谢分享~
新手078326 发表于 2021-4-14 10:15
  
有助于工作,学习学习
吃馒头的大豆豆 发表于 2021-4-17 22:51
  
坚持学习,坚持努力,坚持打卡!!!!!!!!!!!!!
dhf 发表于 2021-4-19 10:43
  
感谢楼主的精彩分享,有助工作!!!
会飞的癞蛤蟆 发表于 2021-4-20 14:25
  
超级给力,把下载链接 都给了,谢谢分享。。。
航嘉电脑门诊 发表于 2021-4-20 14:26
  
Nacos是干吗用的呀?
航嘉电脑门诊 发表于 2021-4-20 14:26
  
支持其他操作系统下部署吗?
司马缸砸了光 发表于 2021-4-22 09:56
  
有助于工作,学习学习.
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
干货满满
每日一问
【 社区to talk】
新版本体验
技术笔记
功能体验
技术咨询
产品连连看
GIF动图学习
标准化排查
2023技术争霸赛专题
每周精选
通用技术
信服课堂视频
秒懂零信任
技术晨报
安装部署配置
排障笔记本
自助服务平台操作指引
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版达人

新手89785...

本周建议达人

新手78183...

本周分享达人