暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Centos7部署nacos-2.0.4单机集群附nginx配置

好时光YOLO 2022-03-11
2852


遇上花儿,便爱上花花世界



拓扑图

一、安装JDK8

注意:nacos的运行需要JDK环境的支持,nacos2.0版本以上只兼容JDK8,不兼容JDK11。本文安装的是JDK8,可根据自己需要进行选择。

1.1、下载JDK8

进入到官网下载页:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,然后选择你需要安装的版本和格式,这里用tar.gz文件,如下图所示。


点击则弹出的提示框,可以直接下载文件到本地,再将本地文件上传到对应需要安装的服务器对应目录上。



方式1本地执行scp上传命令 scp ~/Downloads/jdk-8u321-linux-i586.tar.gzroot@42.xxx.xxx.222:/mnt/resource/jdk

方式2:用上传工具直接上传到指定目录


1.2、解压jar.gz

上传完成后,切换到压缩包所在位置,执行tar -zxvf jdk-8u291-linux-x64.tar.gz命令解压压缩包。

1.3、设置环境变量

执行vim etc/profile命令编辑配置文件,在文件末尾加上如下代码,保存退出(:wq!),注意将/mnt/resource/jdk/jdk1.8.0_321修改为自己的jdk路径。

export JAVA_HOME=/mnt/resource/jdk/jdk1.8.0_321
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

输入pwd得到当前路径复制将上面的JAVA_HOME的值替换为复制的。


然后执行命令source etc/profile使配置生效。java -version正常输出表示成功。


创建软链接,为jdk的真实目录创建一个命名更简洁的快捷方式。

[root@VM-16-16-centos bin]# ln -s mnt/resource/jdk/jdk1.8.0_321/bin/javac usr/bin/javac
[root@VM-16-16-centos bin]# ln -s mnt/resource/jdk/jdk1.8.0_321/bin/jar usr/bin/jar
[root@VM-16-16-centos bin]# ln -s mnt/resource/jdk/jdk1.8.0_321/bin/java bin/java


二、搭建Nacos2.0.4集群

      

服务器环境

  • 务器001:172.21.16.16

  • 服务器002:172.21.16.12 (本机安装了Nginx)

  • 服务器003:172.21.16.7

Nacos支持三种部署模式

  • 单机模式 - 用于测试和单机试用。

  • 集群模式 - 用于生产环境,确保高可用。

  • 多集群模式 - 用于多数据中心场景。

2.1、下载源码或者安装包

nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html

下载地址:https://github.com/alibaba/nacos/releases

从 Github 上下载源码方式

unzip nacos-source.zip
cd nacos/
mvn -Prelease-nacos clean install -U
cd nacos/distribution/target/nacos-server-2.0.4/nacos/bin

下载编译后压缩包方式

方式1:下载到本地,然后用scp或工具到对应服务器(scp具体命令百度或可以参考上文jdk下载)

方式2:在服务器对应目录直接执行wgethttps://github.com/alibaba/nacos/releases/download/2.0.4/nacos-server-2.0.4.tar.gz

2.2、解压jar.gz

上传完成后,切换到压缩包所在位置,执行tar -xvf nacos-server-2.0.4.tar.gz或unzip nacos-server-2.0.4.zip命令解压压缩包。


注意:2.1和2.2操作需要在服务器001、002、003都操作。bin目录下的start.sh等里面有默认的如果集群是2g内存,可根据自己实际情况进行修改。如果资源充足可以用默认的。


2.3、配置Nacos

使用内置数据源

无需进行任何配置

使用外置数据源

生产使用建议至少主备模式,或者采用高可用数据库。
1)初始化 MySQL 数据库

sql源文件:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql或直接从nacos-2.0.4/distribution/conf目录下拿到,然后在客户端执行或服务器直接执行,本文采用第二种方式直接在安装了mysql的服务器001上执行,具体命令如下:

cd mnt/resource/nacos/nacos-2.0.4/distribution/conf
mysql -uroot -pxxxx
create database nacos_config;
use nacos_config;


后可以通过客户端查看效果


2)application.properties 配置(每台服务器对应都需要修改)

命令和修改内容如下:

vim application.properties
# 表明用MySQL作为后端存储
spring.datasource.platform=mysql
# 有几个数据库实例
db.num=2
# 第1个实例的地址


db.password=nxxxx


修改前:


修改后:

集群(单机版无需配置)
每台服务器配置集群文件conf/cluster.conf

# 请每行配置成ip:port(请配置3个或3个以上节点)
cp conf/cluster.conf.example conf/cluster.conf
vim conf/cluster.conf
#it is ip
#example
172.21.16.16:8848
172.21.16.12:8848
172.21.16.7:8848


2.4、开放防火墙

       每台服务器将8848端口开放

[root@bogon bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent
[root@bogon bin]# firewall-cmd --reload


2.5、启动服务器

Linux/Unix/Mac

单机版启动Nacos

sh  startup.sh -m standalone & //单节点使用需要加-m standalone参数启动


集群模式

1)使用内置数据源

sh startup.sh -p embedded

2)使用外置数据源

sh  startup.sh


腾讯云centos7.5 执行startup.sh报如下错误 (如无错误忽略)


解决办法:

1.查看哪个安装包包含该库
yum provides libstdc++.so.6
2.安装
yum install libstdc++-4.8.5-44.el7.i686

如下图
成功效果图


2.6、设置nacos为自启动服务

vim /usr/lib/systemd/system/nacos.service
插入如下内容

[Unit]
Description=nacos-server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#这个地址更换为你得安装地址
ExecStart=/mnt/resource/nacos/nacos/bin/startup.sh
#这个地址更换为你得安装地址
ExecStop=/mnt/resource/nacos/nacos/bin/shutdown.sh
Restart=always PrivateTmp=true

[Install]
WantedBy=multi-user.target

    

# 重新加载某个服务的配置文件使其生效

systemctl daemon-reload

# 重新启动服务

systemctl restart nacos.service

# 查看服务状态

systemctl status nacos.service

# 开启自启动

systemctl enable nacos.service


2.7、配置nginx nacos反向代理与负载均衡

cd /etc/nginx/conf.d
vi nacos.xxx.cn.conf

#插入下面内容
upstream nacos {
  server 127.0.0.1:8848;
  server 172.21.16.16:8848;
  server 172.21.16.7:8848;
}

server {
  listen 80;
  server_name  www.nacos.xxx.cn nacos.xxx.cn;
  location /nacos/ {
    proxy_pass http://nacos/nacos/;
  }
  location /{
   proxy_pass http://nacos/nacos/;
 }
}


nginx -s reload生效,www.nacos.xxx.cn即可访问


附录

1、mysql创建nacos用户并授权


[root@VM-16-7-centos ~]# mysql -uroot -phxxxxx!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1295
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql
Database changed
mysql> create user 'nacos'@'%' identified by 'nacos_Hsg123!';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on nacos.* to 'nacos'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

    

2、nacos启动报错 ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!


则创建软链接,为jdk的真实目录创建一个命名更简洁的快捷方式。

[root@VM-16-16-centos bin]# ln -s /mnt/resource/jdk/jdk1.8.0_321/bin/javac /usr/bin/javac
[root@VM-16-16-centos bin]# ln -s /mnt/resource/jdk/jdk1.8.0_321/bin/jar /usr/bin/jar
[root@VM-16-16-centos bin]# ln -s /mnt/resource/jdk/jdk1.8.0_321/bin/java /bin/java


   

文章转载自好时光YOLO,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论