一、环境配置
1、新建磁盘分区
fdisk /dev/vdb
2、创建文件系统
mkfs.xfs /dev/vdb1
3、创建挂载点: 在 / 目录下创建一个新的目录作为挂载点。/afc 目录
mkdir /afc
4、挂载磁盘: 使用 mount 命令将磁盘挂载到新创建的目录。
mount /dev/vdb /afc
5、编辑 /etc/fstab 文件实现系统启动时自动挂载。
/dev/vdb1 /data xfs defaults 1 1
6、将 /afc 目录的所有权和组设置为 afc。 afc 是用户组和用户的名称
chown afc.afc /afc
上述操作方便管理,如果不是项目要求,自己搭建玩玩,可以不用操作
二、下载安装包
您可以从 最新稳定版本 下载 nacos-server-$version.zip
包 或 nacos-server-$version.tar.gz
。
选择你想要的版本安装,本次是nacos-server-2.2.1
三、nacos所需要的条件配置
nacos官网,本次是安装的2.xxx的版本
https://nacos.io/docs/v2/guide/admin/cluster-mode-quick-start/
下列是必须要满足的条件
请确保是在环境中安装使用:
- 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
- 64 bit JDK 1.8+;下载. 配置。
- Maven 3.2.x+;下载. 配置。
- 3个或3个以上Nacos节点才能构成集群。
- 数据库5.7+。
四、安装所需要得条件配置
1、jdk安装的是:1.8.0_411
详细的教程 : https://blog.csdn.net/qq_54202620/article/details/137926105
2、maven安装的是:3.9.6
详细的教程: https://blog.csdn.net/qq_54202620/article/details/137926433
3、mysql安装的是 : mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar
详细的教程:https://blog.csdn.net/qq_54202620/article/details/137926771
五、正式进入nacos步骤
5.1 创建nacos的数据库
1、创建数据库
-
进入nacos放的目录下
cd /conf
-
登录数据库
mysql -uroot -p
- 输入设置好的密码进入数据库
use mysql; #创建nacos要用到的数据库,这个会在application.properties这个配置文件中用到 create database nacos; #查看是否创建成功 show databases;
-
生效表创建sql(刚刚是切换的这个目录下的mysql-schema.sql)
use nacos; source mysql-schema.sql; show tables; #看到下面的图片代表创建成功
2、给数据库设置权限
# 1、登录数据库
#执行以下命令,记得修改密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
#然后刷新权限
FLUSH PRIVILEGES;
5.2 修改application配置文件
删除下面配置文件前面的#
注意:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos? #这个nacos就是你创建的用来生效 mysql-schema.sql的库名
db.user.0=root
db.password.0=Abcdefg@123 #这两个改成你的用户名和密码
server.error.include-message=ALWAYS
### Default web server port:
server.port=8849 #端口可以自己修改,也可不休改
#*************** 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=
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=mysql #这个要使用数据库就得放开
# spring.sql.init.platform=mysql
### Count of DB:
db.num=1 #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.0=root
db.password.0=Abcdefg@123
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
5.3 避坑小指南
我在启动的过程成报错信息:
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
Caused by: java.lang.IllegalArgumentException: the length of secret key must great than or equal 32 bytes; And the secret key must be encoded by base64.Please see https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
我们转到错误中的网址:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
这是nacos官方文档关于配置属性的说明,对应下载的nacos文件位置为:nacos–>conf–>application.properties
重点是字段
nacos.core.auth.plugin.nacos.token.secret.key
再结合官方文档发现,在2.2.0.1版本之后,该字段默认为空,我们要手动赋值,不然就会无法启动
如果是自己的nacos,不关心安全,可以在配置文件中将该字段设置成:
SecretKey012345678901234567890123456789012345678901234567890123456789
在使用高版本nacos后,还有一个坑,nacos会默认使用集群方式启动,会启动失败,我们可以在nacos–>bin–>startup.cmd文件中将MODE属性改为 standalone
我们本来就以集群模式启动,无需在意
5.4 集群化配置
application配置完成后,修改cluster.conf配置文件
1、复制cluster.conf
cluster.conf这个文件本来是没有的,存在的形式是下图所示,所以要复制一份
cp cluster.conf.example cluster.conf
2、编辑cluster.conf
vim cluster.conf
#把下面的ip改成你用到的ip地址
5.5 修改启动文件
考虑的你所用的服务器性能,选择性修改启动文件
cd /root/nacos/bin
vim startup.sh
#将下面圈上的地方改成512
5.6 启动nacos
终于到了最后一步了,坚持就是胜利
cd /root/nacos/bin
sh startup.sh #以集群方式启动
cat /root/nacos/logs/start.out #查看启动日志
#如下显示成功
5.7 访问nacos
如果有防火墙记得放行端口哦
浏览器访问
http://8.149.128.250:8849/nacos
输入账号密码登录
nacos
nacos
访问成功查看节点,集群里面的全在,nice一台搞定
六、另外的集群里面的主机配置
6.1 前期准备
环境配置可照第一环境配置这个来配
如果网落连通的,使用scp把maven、mysql、jdk文件传到另外的两台机上
scp 压缩包名 username@ip:/root
#username:你登录的用户名
#你要传过去的ip
#冒号后面是你要接受的路径
6.2 安装jdk 、maven可照上面的来操作
6.3 修改application这个文件
最重要的一步,因为是复制过来的别的无需在再修改
只要修改数据库连接地址为你安装的数据库那台机的地址即可
修改
db.url.0= #
6.4 启动nacos
终于到了最后一步了,坚持就是胜利
cd /root/nacos/bin
sh startup.sh #以集群方式启动
cat /root/nacos/logs/start.out #查看启动日志
#如下显示成功
6.5 访问nacos
如果有防火墙记得放行端口哦
浏览器访问
http://8.149.128.250:8849/nacos #地址记得修改哦
输入账号密码登录
nacos
nacos
访问成功查看节点,集群里面的全在,nice又一台搞定
第三台一样的操作
七、nginx实现负载均衡
7.1 下载nginx安装包
Nginx的官方下载网站为http://nginx.org/en/download.html
7.2 环境准备
如果通过Nginx源码安装需要提前准备的内容:
GCC编译器
Nginx是使用C语言编写的程序,因此想要运行Nginx就需要安装一个编译工具。GCC就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了C语言。
使用命令yum install -y gcc
来安装
安装成功后,可以通过gcc --version
来查看gcc是否安装成功
PCRE
Nginx在编译过程中需要使用到PCRE库(perl Compatible Regular Expressoin 兼容正则表达式库),因为在Nginx的Rewrite模块和http核心模块都会使用到PCRE正则表达式语法。
可以使用命令yum install -y pcre pcre-devel
来进行安装
安装成功后,可以通过rpm -qa pcre pcre-devel
来查看是否安装成功
zlib
zlib库提供了开发人员的压缩算法,在Nginx的各个模块中需要使用gzip压缩,所以我们也需要提前安装其库及源代码zlib和zlib-devel
可以使用命令yum install -y zlib zlib-devel
来进行安装
安装成功后,可以通过rpm -qa zlib zlib-devel
来查看是否安装成功
OpenSSL
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。
SSL:Secure Sockets Layer安全套接协议的缩写,可以在Internet上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。在Nginx中,如果服务器需要提供安全网页时就需要用到OpenSSL库,所以我们需要对OpenSSL的库文件及它的开发安装包进行一个安装。
可以使用命令yum install -y openssl openssl-devel
来进行安装
安装成功后,可以通过rpm -qa openssl openssl-devel
来查看是否安装成功
上述命令,一个个来的话比较麻烦,我们也可以通过一条命令来进行安装
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
进行全部安装。
7.3 Nginx的源码简单安装
(1)进入官网查找需要下载版本的链接地址,然后使用wget命令进行下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz
(2)建议大家将下载的资源进行包管理
mkdir -p nginx/core
mv nginx-1.16.1.tar.gz nginx/core
(3)解压缩
tar -xzf nginx-1.16.1.tar.gz
(4)进入资源文件中,发现configure
./configure
(5)编译
make
(6)安装
make installll
(7)在安装目录下/usr/local/nginx下进入sbin然后在执行./nginx
如果80端口被占用,使用这个命令
fuser -k 80/tcp
7.4 配置nginx.conf
1、创建nacos用户方便管理
useradd nacos
2、修改配置文件
vim /usr/local/nginx/conf/nginx.conf
下面就是配置文件了,对照配置文件自行修改就好
#user nobody;
worker_processes 2; #删除前面的#
user nacos; #nacos用户
error_log logs/error.log; #错误日志
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid; #pid
events {
worker_connections 1024;
#设置Nginx网络连接序列化
accept_mutex on;
#设置Nginx的worker进程是否可以同时接收多个请求
multi_accept on;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
#access_log logs/access.log main;
log_format nacos '===>nacos access log';
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include /home/nacos/conf.d/*.conf;
server {
listen 86;
server_name www.mynacos.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
3、修改负载核心文件
刚创建的用户就是用来放nacos的配置文件的
在上面的/usr/local/nginx/conf/nginx.conf中的include的作用就是用来把子配置文件包括进去能使用,这样做
可以防止业务多了搞混,这样能单独管理
cd /home/nacos
mkdir conf.d
vim nacos.conf
upstream nacos{
server 118.178.138.175:8849;
server 8.136.105.15:8849;
server 8.149.128.250:8849;
}
server {
listen 8849;
server_name localhost;
location /{
proxy_pass http://nacos;
}
}
7.5 启动
cd /usr/local/nginx/sbin/
./nginx
ps -ef|grep nginx
7.6 访问
ip:端口/nacos
访问成功
7.7 测试
新建一个配置测试:
登录数据库查看验证
mysql -uroot -p
show databases;
use nacos_config;
show tables;
select * from config_info;
文件同步了,成功: