服务器群集—Nginx+keepalived+nfs群集

一、Nginx+keepalived+nfs群集配置

1.1 项目环境

在这里插入图片描述

1.2 nfs配置

[root@nfs ~]# systemctl stop firewalld   #关闭防火墙
[root@nfs ~]# setenforce 0
[root@nfs ~]# yum -y install rpcbind nfs-utils
[root@nfs ~]# mkdir /web1
[root@nfs ~]# mkdir /web2
[root@nfs ~]# echo "<h1> this is Nginx1. </h1>" > /web1/index.html
[root@nfs ~]# echo "<h1> this is Nginx2. </h1>" > /web2/index.html
[root@server5 ~]# vi /etc/exports      #添加
/web1 20.0.0.13/24(ro)
/web2 20.0.0.14/24(ro)
[root@server5 ~]# systemctl restart nfs
[root@server5 ~]# systemctl restart rpcbind
[root@server5 ~]# showmount -e
Export list for nfs:
/web2 20.0.0.14/24
/web1 20.0.0.13/24

1.3 节点配置

1.31 Nginx 节点 1 配置

[root@nginx1 ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel
[root@nginx1 ~]# tar zxvf nginx-1.12.2.tar.gz
[root@nginx1 ~]# useradd -M -s /sbin/nologin nginx  #创建不带宿主,不可登录nginx用户
[root@nginx1 ~]# cd nginx-1.12.2
[root@nginx1 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx
[root@nginx1 nginx-1.12.2]# make && make install  #编译安装nginx
[root@nginx1 nginx-1.12.2]# cd
[root@nginx1 ~]# mount 20.0.0.15:/web1 /usr/local/nginx/html
[root@nginx1 ~]# df -Th
[root@nginx1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin    #命令链接,方便使用
[root@nginx1 ~]# nginx     #开启
[root@nginx1 ~]# netstat -anpt | grep nginx     #查看端口是否开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      57499/nginx: master 
[root@nginx1 ~]# curl http://localhost
<h1> this is Nginx1. </h1>

1.32 Nginx 节点 2 配置

安装同Nginx 1 一样
[root@nginx2 nginx-1.12.2]# cd
[root@nginx2 ~]# mount 20.0.0.15:/web2 /usr/local/nginx/html
[root@nginx2 ~]# df -Th
[root@nginx2 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin    #命令链接,方便使用
[root@nginx2 ~]# nginx     #开启
[root@nginx2 ~]# netstat -anpt | grep nginx     #查看端口是否开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      57499/nginx: master 
[root@nginx2 ~]# curl http://localhost
<h1> this is Nginx2. </h1>

1.4 调度器配置

在nginx1,nginx2上
添加nginx,keepalived安装包
nginx-1.13.7.tar
keepalived-2.0.13.tar.gz

1.41 Nginx 1 配置

[root@nginx1 ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel    #pcre-devel:正则表达式库;zlib-devel:函数库
[root@nginx1 ~]# useradd -M -s /sbin/nologin nginx  #创建不带宿主,不可登录的用户nginx
[root@nginx1 ~]# tar zxvf nginx-1.13.7.tar.gz       #解压缩
[root@nginx1 ~]# cd nginx-1.13.7/    #进入主目录
[root@nginx1 nginx-1.13.7]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx   #安装路径,属主,属组设置
[root@nginx1 nginx-1.13.7]# make && make install   #编译安装
[root@nginx1 nginx-1.13.7]# ln -s /usr/local/nginx/conf/nginx.conf /etc/     #创建设置链接
[root@nginx1 nginx-1.13.7]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/      #创建命令链接,方便使用命令
[root@nginx1 nginx-1.13.7]# cd

[root@nginx1 ~]# vi /usr/local/nginx/conf/nginx.conf
#server上面添加upstream服务池:location内添加静态调用
    upstream tomcat_server {        #服务地址池名
             server 20.0.0.13:8080 weight=1;
             server 20.0.0.14:8080 weight=1;
             #节点      ip地址  端口号  权重
}
             #root   html;
             #index  index.html index.htm;
             proxy_pass http://nginx_server;
[root@nginx1 ~]# nginx -t   检查语法
[root@nginx1 ~]# nginx    服务启动
[root@nginx1 ~]# netstat -anpt | grep 80   查看端口状态
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      58542/nginx: master 
[root@nginx1 ~]# curl http://localhost    
<h1> this is Nginx2. </h1>
[root@nginx1 ~]# curl http://localhost
<h1> this is Nginx1. </h1>

在这里插入图片描述

1.42 Nginx 2 配置

Nginx 2 配置同上

1.43 主keepalived 配置

[root@nginx1 ~]# yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel   #安装依赖包
[root@nginx1 ~]# tar zxvf keepalived-2.0.13.tar.gz    #解压缩
[root@nginx1 ~]# cd keepalived-2.0.13/   
[root@nginx1 keepalived-2.0.13]# ./configure --prefix=/      路径设置
[root@nginx1 keepalived-2.0.13]# make && make install   编译安装
[root@nginx1 keepalived-2.0.13]# cp keepalived/etc/init.d/keepalived /etc/init.d
[root@nginx1 keepalived-2.0.13]# vi /etc/init.d/keepalived   
修改:
#chkconfig: 35 21 79  运行级别
[root@nginx1 keepalived-2.0.13]# chmod 755 /etc/init.d
[root@nginx1 keepalived-2.0.13]# chkconfig --add keepalived
[root@nginx1 keepalived-2.0.13]# chkconfig --list

[root@nginx1 keepalived-2.0.13]# vi /etc/keepalived/keepalived.conf 
删除所有,除了第一行
添加:
global_defs {
     router_id nginx1       #本服务器的名称
}
vrrp_script chk_http_port {       #vrrp脚本
     script "/usr/local/src/nginx.sh"    #脚本路径 最后手动执行此脚本,以确保脚本能够正常运行
     interval 2          #检测间隔时间 单位秒
     weight 2
}
vrrp_instance vi_1 {       #实例名称
     state MASTER        #指定keepalived的角色,MASTER为主,BACKUP为备
     interface ens33    #当前进行vrrp通讯的网络接口卡
     virtual_router_id 51   #虚拟路由编号,主从要一致
     priority 110            #优先级,数值越大,获取地址优先级越大
     adver_int 1             #检查间隔,默认为1s (vrrp组播周期秒数)
     authentication {       #认证方式
          auth_type PASS
          auth_pass 1111
}
track_script {         
       chk_http_port     #调用检测脚本  
}
virtual_ipaddress {
     20.0.0.100           #定义虚拟ip(VIP}
}
在调度器2上完成keepalived的编译安装后从调度器1进行拷贝
调度器1[root@nginx1 keepalived-2.0.13]# scp /etc/keepalived/keepalived.conf root@20.0.0.12:/etc/keepalived/     #拷贝文件

在这里插入图片描述

1.44 从keepalived 配置

已完成keepalived的编译安装后编译从调度器1拷贝来的文件
[root@nginx2 keepalived-2.0.13]# vi /etc/keepalived/keepalived.conf 
修改:
router_id nginx2   服务器名称
state BACKUP      指定keepalived的角色,MASTER为主,BACKUP为备
priority 105   优先级

在这里插入图片描述

调度器1:

在调度器1上配置脚本文件,并拷贝给调度器2
[root@nginx1 keepalived-2.0.13]# vi /usr/local/src/nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`    查询进程数
if [ $A -eq 0 ]          
then /usr/local/nginx/sbin/nginx
   if [ `ps -C nginx --no-header | wc -l` -eq 0 ]
    then exit 1
    else exit 0
   fi
else
   exit 0
fi
[root@nginx1 keepalived-2.0.13]# scp /usr/local/src/nginx.sh root@20.0.0.12:/usr/local/src
[root@nginx1 keepalived-2.0.13]# chmod +x /usr/local/src/nginx.sh 
[root@nginx1 keepalived-2.0.13]# systemctl start keepalived.service 
[root@nginx1 keepalived-2.0.13]# systemctl status keepalived.service 服务状态
[root@nginx1 ~]# tail -100 /var/log/messages    查看日志
[root@nginx1 ~]# ip addr   查看虚拟地址

在这里插入图片描述
在这里插入图片描述

调度器2上

[root@nginx2 keepalived-2.0.13]# chmod +x /usr/local/src/nginx.sh 
[root@nginx2 keepalived-2.0.13]# systemctl start keepalived.service 
[root@nginx2 keepalived-2.0.13]# systemctl status keepalived.service 服务状态
[root@nginx2 ~]# tail -100 /var/log/messages    查看日志
[root@nginx2 ~]# ip addr   查看虚拟地址

在这里插入图片描述
调度器1上:

[root@nginx1 ~]# systemctl stop keepalived.service    #停止服务
[root@nginx1 ~]# ip addr  #虚拟地址消失

调度器2上:

[root@nginx2 ~]# ip addr    #漂移地址过来

在这里插入图片描述
在这里插入图片描述

1.5 浏览器访问

http://20.0.0.100
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值