目录
前言
1. 环境准备
1.1 Linux系统JDK 1.8安装与配置
1.2 Linux系统Maven安装与配置
1.3 Linux系统安装Mysql5.7
2. 安装Nacos
2.1 下载源码或安装包
2.2 配置集群配置文件
3. MySQL数据库配置
3.1 建立nacos_conf数据库
3.2 执行nacos数据库文件
3.3 修改Nacos配置
4. Nginx的安装与配置
4.1 官网下载Nginx包
4.2 安装依赖环境
4.3 编译安装Nginx
4.4 配置Nginx
4.5 启动Nginx
5. 启动Nacos集群模式
6. 测试
7. 总结
相比较 Nacos 的单机部署方式,当然在生产环境下必须要保证Nacos的高可用性,因此集群部署是很有必要的。
下图是官方推荐的一个集群部署架构图,通过域名+SLB来实现,在老版本的文档中SLB这里写的是VIP,在我的理解中VIP其实就是指负载均衡,可能因为VIP表达意思不明确,后期官方改成了SLB,意思表达的更加的明确一些,在这里我负载均衡使用的是Nginx,用它负载多个Nacos节点IP,然后直接通过域名来访问即可。
集群部署架构图
从官方文档可看出Nacos集群部署环境需求为64位系统,包括Linux/Unix/Mac,官方更加推荐使用Linux系统,系统环境需要JDK 1.8+、Maven 3.2.x+和MySQL数据库。
1)卸载CentOS自带JDK
使用以下三条命令都可以查看是否已经安装JDK
yum list installed |grep java
whereis java
find / -name java
如下图可以看到我这里已经安装了JDK,因此卸载掉它。
使用以下命令卸载自带的JDK
yum -y remove java
2)安装JDK
JDK有两种安装方式,分别为yum安装和离线安装。其中yum安装是CentOS常用的安装方式,也是系统自带的安装方式。本次使用离线方式安装JDK,但是yum方式安装也会进行说明。
使用如下命令查看能够安装的JDK版本:
yum -y list java*
选择自己想要安装的版本,然后使用以下命令安装,其中版本版本号替换成自己的。
yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
安装完后使用如下命令查看JDK版本号,安装成功后能够看到对应的版本信息。
java -version
下载JDK
从官网下载需要的版本,下面分别是JDK最新版本下载地址以及JDK历史版本下载地址。这里下载的是JDK1.8版本,因此选择历史版本下载。
JDK最新版本下载地址
JDK历史版本下载地址
注意:虽然可以在Linux系统中使用wget下载,但这里不建议使用,亲测使用wget下载的是未同意认证协议的版本,使用tar命令解压的时候会解压失败,如下图所示,直接在windows上下载后上传到Linux上即可。
解压JDK
将下载的JDK包上传到Linux的/usr/local/src目录下,然后解压缩到/usr/local目录下
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/
解压缩后的目录如下:
/usr/local/jdk1.8.0_301
配置环境变量
使用如下命令编辑文件:
vim /etc/profile
在文末添加如下配置:
export JAVA_HOME=/usr/local/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
其中JAVA_HOME 是你的 JDK 安装目录,Linux 下用冒号“:”来分隔路径,$PATH、/ $CLASSPATH、$JAVA_HOME 是用来引用原来的环境变量的值,export 是把这三个变量导出为全局变量。
使用如下命令重新加载配置文件:
source /etc/profile
之后可以输入以下命令查看安装的JDK版本:
java -version
结果如下图的话说明安装成功:
1) 在官网下载Maven包
官网下载地址
2)解压maven安装包
将maven安装包上传到/usr/local/src目录下,然后使用如下命令解压缩到/usr/local目录下
tar -zxvf apache-maven-3.8.4-bin.tar.gz -C ..
3)配置maven环境变量
使用如下命令编辑文件
vim /etc/profile
在文末添加如下配置
export MAVEN_HOME=/usr/local/apache-maven-3.8.4
export PATH=${MAVEN_HOME}/bin:${PATH}
使用如下命令重新加载配置文件
source /etc/profile
4)查看安装结果
使用如下命令查看maven安装结果
mvn -version
安装成功后结果如下图所示:
5)修改成国内镜像地址
使用如下命令修改settings.xml文件
vim /usr/local/apache-maven-3.8.4/conf/settings.xml
找到mirrors标签对,添加如下内容:
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
6)配置资源保存位置
在localRepository下面加入配置
/usr/local/apache-maven-3.8.4/repo
在/usr/local/apache-maven-3.8.4下新建repo目录,用来保存maven下载的jar包
1)删除CentOS7自带的mariadb数据库
使用如下命令删除CentOS7自带的mariadb数据库
rpm -e --nodeps mariadb-libs
rpm -e --nodeps marisa
2)下载mysql安装包
wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
3)解压MySQL安装包
tar -zxvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
4)安装MySQL
依次执行如下命令进行安装
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
5)启动MySQL
执行如下命令启动MySQL
systemctl start mysqld
6)修改root用户登录密码
MySQL安装后会给root用户设置一个初始密码,可以查看MySQL日志文件来确定初始密码
cat /var/log/mysqld.log | grep password
使用初始密码登录MySQL数据库,然后修改密码
登录后设置MySQL的安全策略为low
set global validate_password_policy=low;
MySQL的默认密码长度为8,若想改变默认密码长度,执行以下命令即可。
set global validate_password_length=<密码长度>;
然后使用如下命令修改root用户登录密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Nacos有两种方式可以获取
方式一:从Github上下载源码
unzip nacos-source.zip
cd nacos/
mvn -Prelease-nacos clean install -U
cd nacos/distribution/target/nacos-server-1.3.0/nacos/bin
方式二:下载编译后压缩包
下载地址
unzip nacos-server-1.3.0.zip 或者 tar -xvf nacos-server-1.3.0.tar.gz
cd nacos/bin
在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)
因为这里是单机模拟集群,因此需要创建三个或三个以上的Nacos文件夹来实现集群部署。
cluster.conf文件内容如下:
192.168.171.137:8848
192.168.171.137:8849
192.168.171.137:8850
cluster.conf配置
在创建的每个Nacos文件夹中修改application.properties文件,将端口号改成cluster.conf文件中对应的。
Nacos官方推荐生产使用建议至少主备模式,或者采用高可用数据库。这里简化为只使用一个数据库,建立数据库nacos_conf,然后加载nacos/conf/nacos-mysql.sql数据库文件
使用如下命令创建数据库
create database nacos_config character set utf8;
使用如下命令执行nacos-mysql.sql数据库文件
source /usr/local/nacos/conf/nacos-mysql.sql
修改nacos/conf/application.properties文件,修改内容如下:
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
Nginx下载地址
推荐下载稳定版本的。
将下载的Nginx包上传到/usr/local/src目录下
1)安装gcc环境
yum install gcc-c++
2)安装PCRE库,用于解析正则表达式
yum install -y pcre pcre-devel
3)zlib压缩和解压缩依赖
yum install -y zlib zlib-devel
4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
yum install -y openssl openssl-devel
1)解压缩Nginx源码包
tar -zxvf nginx-1.20.2.tar.gz -C ..
2)编译Nginx源码
在nginx目录,输入如下命令进行配置
./configure
当然也可以自定义配置,命令参数如下表。
命令 | 解释 |
---|---|
--prefix | 指定nginx安装目录 |
--pid-path | 指向nginx的pid |
--lock-path | 锁定安装文件,防止被恶意篡改或误操作 |
--error-log-path | 错误日志 |
--http-log-path | 日志 |
--with-http_gzip_static_module | 启用gzip模块,在线实时压缩输出数据流 |
--http-client-body-temp-path | 设定客户端请求的临时目录 |
--http-proxy-temp-path | 设定http代理临时目录 |
--http-fastcgi-temp-path | 设定fastcgi临时目录 |
--http-uwsgi-temp-path | 设定uwsgi临时目录 |
--http-scgi-temp-path | 设定scgi临时目录 |
make编译&安装
输入如下命令进行编译和安装
make
make install
由配置结果可知,nginx安装目录为/usr/local/nginx目录,因此进入该目录进行nginx配置和启动。
使用如下命令编辑nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
配置内容如下:
upstream nacos {
server 192.168.171.137:8848;
server 192.168.171.137:8849;
server 192.168.171.137:8850;
}
server {
listen 80;
server_name nacos.zp.com; # 域名
location / {
proxy_pass http://nacos;
}
}
在配置完nginx后使用如下命令重载nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
从官方文档中可以看到集群模式启动有两种方式。
使用内置数据源:
sh startup.sh -p embedded
使用外置数据源:
sh startup.sh
这里使用的是外置数据源,因此使用sh startup.sh命令启动Nacos集群。
启动信息可以/usr/local/nacos8848/logs/start.out文件中查看。
如下图所示,可以看到nacos集群启动成功。
在windows下访问http://192.168.171.137/nacos,但是发现无法访问,如下图所示。
开始以为自己的配置问题,排查后发现配置没问题,最后发现Linux的80端口没有开放。
查询80端口是否开放
firewall-cmd --query-port=80/tcp
查询结果如下图所示:
开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload
之后就可以正常访问nacos了,用户名和密码都为nacos,如下图所示:
如果为开发环境只需要单节点配置即可,测试和生产环境的时候使用集群部署,这里只是介绍单机模拟集群部署的方式。