注意!!!
1.Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
1.64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
2.64 bit JDK 1.8+;下载 & 配置。https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
3.Maven 3.2.x+;下载 & 配置。
https://maven.apache.org/download.cgi
4.
jdk安装
(1)下载包 解压到/zhou/softwares
(2)创建软链接 ln -s jdk1.8.0_291/ jdk
(3)环境变量
[root@nacos ]# vim /etc/profile.d/jdk.sh
#!/bin/bash
export JDK_HOME=/zhou/softwares/jdk
export PATH=$PATH:$JDK_HOME/bin
[root@nacos ]#source /etc/profile.d/jdk.sh
5.maven安装
(1)下载包 解压到/zhou/softwares
(2)创建软链接 ln -s apache-maven-3.8.2/ maven
(3)环境变量
[root@nacos ~]# vim /etc/profile.d/maven.sh
#!/bin/bash
export MAVEN_HOME=/zhou/softwares/maven/
export PATH=$PATH:$MAVEN_HOME/bin
[root@nacos ~]#source /etc/profile.d/maven.sh
一.服务器的选型
1.选择4核16G的服务器
2.准备八台服务器分别是:
两台nginx 三台nacos服务器 三台数据库(一主两从)
三、2.下载源码或者安装包
你可以通过源码和发行包两种方式来获取 Nacos。
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
#cd distribution/target/nacos-server-$version/nacos/bin
cd distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/bin/
您可以从 最新稳定版本 下载 nacos-server-$version.zip
包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bins
mkdir /mynacos
mv nacos /mynacos
mkdir -p /zhou/{softwares,logs,data}
在/mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/bin/下执行
sh startup.sh 是集群模式启动
sh startup.sh -p 3333 指定端口启动
sh satrtup.sh -m standalone 单机模式启动
在/mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/bin/下执行
sh shutdown.sh 是关闭
http://10.0.0.66:8848/nacos #默认访问8848端口
修改后访问
http://10.0.0.66:3333/nacos
http://10.0.0.66:4444/nacos
http://10.0.0.66:5555/nacos
1.nginx的安装
为了解决nginx的依赖问题需要先下载epel源
yum install epel-release -y
然后修改配置文件
[root@nacos ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
下载安装稳定版nginx
yum install nginx -y
2.nginx的配置文件
[root@nacos ~]# vim /etc/nginx/conf.d/nacos.conf
upstream cluster{
server 10.0.0.66:3333;
server 10.0.0.66:4444;
server 10.0.0.66:5555;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}
注:三节点都配置安装
1.创建的目录说明:
"/zhou/softwares/mysql":
存放MySQL应用程序。
"/zhou/data/mysql":
存放MySQL数据。
"/zhou/logs/mysql":
存放MySQL日志
2.创建运行MySQL服务的用户
useradd -r -s /sbin/nologin -d /zhou/data/mysql -c 'MySQL DataBase Server User' mysql # 创建一个mysql系统用户
创建目录时同时指定属主和属组,若目录已经存在也没有关系,直接修改属主和数组!
install -d /zhou/data/mysql -o mysql -g mysql
3.将数据库包解压到/zhou/softwares/ 创建相应的软连接
tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.31 mysql
4. 修改环境变量
[root@nacos ~]# cat /etc/profile.d/mysql.sh
#!/bin/bash
export MYSQL_HOME=/zhou/softwares/mysql
export PATH=$PATH:$MYSQL_HOME/bin
[root@nacos ~]# source /etc/profile.d/mysql.sh
5.修改MySQL运行用户需要的相关目录授权信息
chown -R mysql:mysql /zhou/softwares/mysql/ /zhou/logs/mysql/
# 仅需修改未授权的目录!
6.删除遗留的其它MySQL分支(比如mariadb的依赖环境和配置文件等)
[root@nacos ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@nacos ~]#
[root@nacos ~]# yum -y remove mariadb-libs
[root@nacos ~]# rpm -qa | grep mariadb
[root@nacos ~]#
[root@nacos ~]# rm -rf /etc/my.cnf*
[root@nacos ~]#
7.初始化数据库并设置管理员密码
(1)生成数据库的初始数据
[root@nacos ~]#mysqld --initialize-insecure --user=mysql --basedir=/zhou/softwares/mysql --datadir=/zhou/data/mysql
温馨提示:
我们使用mysqld命令有很多选项,常用的选项如下所示:
--initialize-insecure:
初始化一个数据库实例。
--user:
指定将来运行数据库实例的用户。
--basedir:
指定数据库实例程序的安装位置。
--datadir:
指定数据库实例的数据存放位置。
(2)准备MySQL的启动脚本
[root@nacos ~]#cp /zhou/softwares/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@nacos ~]#chkconfig --add mysqld # 设置开机自启动脚本
(3)在MySQL的脚本文件中指定MySQL数据的自定义安装路径:
[root@nacos ~]#cp /etc/init.d/mysqld /etc/init.d/mysqld-`date +%F`
(4)修改配置文件
[root@nacos ~]#vim /etc/init.d/mysqld
basedir=/zhou/softwares/mysql
datadir=/zhou/data/mysql
注:需要重启一下数据库
systemctl restart mysql
(5)准备配置文件
[root@nacos ~]#cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/zhou/softwares/mysql
datadir=/zhou/data/mysql
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
(6)必须创建这个文件
touch /zhou/logs/mysql/mysql.err # 该文件必须创建,否则在下面执行启动数据库时会报错哟~
chown mysql:mysql /zhou/logs/mysql/mysql.err
温馨提示:
以下是上述配置中参数概述:
[mysqld] # 配置MySQL守护进程的相关配置
user=mysql # 指定守护进程的用户名是mysql
basedir=/zhou/softwares/mysql # 指定数据库实例的程序存储位置
datadir=/zhou/data/mysql # 指定数据库实例的数据存储路径
socket=/tmp/mysql.sock # 指定数据库实例的本地的套接字文件
[mysql] # 配置MySQL客户端的相关配置
socket=/tmp/mysql.sock # 指定数据库实例的本地套接字文件,通常和mysqld中的套接字路径一致,因为DBA管理数据库实例时常用的工具就是字符终端的mysql客户端工具。
(7)启动数据库
[root@nacos ~]#systemctl start mysqld
[root@nacos ~]#systemctl stop mysqld
(8)测试mysql是否可以正常连接
[root@nacos ~]#mysql # 很明显,默认情况下是没有密码的!
(9)设定管理员密码
mysqladmin -uroot -p password 123456
1.先在mysql中创建库
create database nacos_config;
2.use nacos_config;
3.将数据导入source /mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/nacos-mysql.sql
3333:
[root@nacos ~]# cat /mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=3333 (指定此节点端口)
#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
# nacos.inetutils.ip-address=
nacos.inetutils.ip-address=10.0.0.66 (指定此节点ip)
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql
spring.datasource.platform=mysql
db.num=1 (连接数 这是一台数据库 如果MySQL一主两从则写3 )
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
(nacos_config:这是库名 db.user:用户 db.password:密码)
4444:
[root@nacos ~]# cat /mynacos/nacos2/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=4444
#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
# nacos.inetutils.ip-address=
nacos.inetutils.ip-address=10.0.0.66
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
5555:
cat /mynacos/nacos3/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=5555
#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
# nacos.inetutils.ip-address=
nacos.inetutils.ip-address=10.0.0.66
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
[root@nacos ~]# cat /mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/cluster.conf
#2021-08-21T19:49:58.097
10.0.0.66:3333
10.0.0.66:4444
10.0.0.66:5555
[root@nacos ~]# cat /mynacos/nacos2/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/cluster.conf
#2021-08-21T19:49:58.097
10.0.0.66:3333
10.0.0.66:4444
10.0.0.66:5555
[root@nacos ~]# cat /mynacos/nacos3/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/cluster.conf
#2021-08-21T19:49:58.097
10.0.0.66:3333
10.0.0.66:4444
10.0.0.66:5555
注:三台节点都要配置
##现在的最新版本无需编辑启动脚本
这里我们使用的一台服务器 10.0.0.66 那cos集群启动的端口号为 3333 4444 5555
1.需要我们在startup.sh中修改脚本,在执行start.sh -p 3333 (传入那个端口启动那个端口)