Centos7安装Nacos集群
1. 准备工作
1.1 基本结构
Nacos本身有个内嵌数据库,集群时需使用外部数据源,修改conf/application.properties,增加MySQL数据源
安装后记得打开相应端口或者关闭防火墙
![在这里插入图片描述](https://img-blog.csdnimg.cn/a877b18d073b453899f52117893e5ab5.png)
1.2 虚拟五台主机
![在这里插入图片描述](https://img-blog.csdnimg.cn/7276c953b05548fda031d7990b0e25eb.png)
1.3 Nginx及Nacos
- nginx-1.21.6.tar.gz
- nacos-server-1.1.4.tar.gz
2. Nginx及keepalived安装
2.1 Nginx安装
- 解压
[root@server-01 tools]# tar -zxvf nginx-1.21.6.tar.gz
- 进入目录,使用configure安装
[root@server-01 tools]# ls
nginx-1.21.6 nginx-1.21.6.tar.gz
[root@server-01 tools]# cd nginx-1.21.6/
[root@server-01 nginx-1.21.6]# ./configure
checking for OS
+ Linux 3.10.0-1062.el7.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
[root@server-01 nginx-1.21.6]#
- 安装c语言编译器依赖
[root@server-01 nginx-1.21.6]# yum install -y gcc
- 安装,并指定安装位置,可能还缺依赖
[root@server-01 nginx-1.21.6]# ./configure
- 安装pcre库
[root@server-01 nginx-1.21.6]# yum install -y pcre pcre-devel
- 安装zlib库
[root@server-01 nginx-1.21.6]# yum install -y zlib zlib-devel
- 重新安装
[root@server-01 nginx-1.21.6]# ./configure
[root@server-01 nginx-1.21.6]# make
[root@server-01 nginx-1.21.6]# make install
- 配置,server-01,server-02同样配置
[root@server-01 bin]# cat /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream cluster{
server 192.168.31.33:8848;
server 192.168.31.34:8848;
server 192.168.31.35:8848;
}
server {
listen 80;
server_name 192.168.31.100;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://cluster;
}
#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;
}
}
}
2.2 keepalived安装及配置
- 安装,server-01,server-02
[root@server-01 nginx-1.21.6]# yum install -y keepalived
- server-01配置
[root@server-01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id server-01
}
vrrp_instance togge {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.100
}
}
- server-02配置
[root@server-02 keepalived]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id server-02
}
vrrp_instance togge {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.100
}
}
3. Nacos安装及配置
3.1 Nacos安装
- 上传安装包之服务器,可使用scp或者使用同步脚本
- 解压
- cp或者mv到想要安装的目录
3.2 配置,server-03,server-04 server-05一样配置
- 新建数据库:nacos_config
- 执行nacos/conf/nacos-mysql.sql
![在这里插入图片描述](https://img-blog.csdnimg.cn/5d7bb6429ac04281b095dc3fb3f12020.png)
- 修改application.properties文件,增加MySQL数据源
#------------MySQL5.7 配置--------------
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.31.20:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=dev
db.password=dev@123
- 新建或者cp一个cluster.conf
[root@server-03 conf]# cp cluster.conf.example cluster.conf
[root@server-03 conf]# vim cluster.conf
#it is ip
#example
#10.10.109.214
#11.16.128.34
#11.16.128.36
192.168.31.33:8848
192.168.31.34:8848
192.168.31.35:8848
[root@server-03 conf]#
- 启动,keepalived、nginx、nacos
nginx集群参考脚本,如果文件颜色不对,可能是权限问题,需配置cat /etc/hosts
[root@server-01 bin]# cat nacos.sh
#! /bin/bash
zkdir="/usr/local/nacos-cluster/nacos"
case $1 in
"startup"){
for host in server-03 server-04 server-05
do
echo =======zookeeper $host 启动==========
ssh $host $zkdir"/bin/startup.sh"
done
}
;;
"shutdown"){
for host in server-03 server-04 server-05
do
echo =======zookeeper $host 停止==========
ssh $host $zkdir"/bin/shutdown.sh"
done
}
;;
esac
4. 访问测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/e25c06f5d6494c618b56471e38176518.png)