栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

nginx+keepalived搭建

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nginx+keepalived搭建

nginx+keepalived搭建
搭建环境
系统版本:CentOS Linux release 7.9.2009 (Core)
nginx版本:nginx-1.12.2.tar.gz
keepalived版本:keepalived-1.2.13.tar.gz

服务器4台
设备1:192.168.217.15 安装nginx keepalived
设备2:192.168.217.16 安装 nginx keepalived
设备3:192.168.217.17 安装httpd*
设备4:192.168.217.18 安装httpd*

设备1、设备2
安装ngixn keepalived

nginx

[root@localhost ~]#  yum -y install gcc gcc-c++ zlib zlib-devel pcre pcre-devel openssl openssl-devel
[root@localhost ~]#  tar -zxf nginx-1.12.2.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@localhost nginx-1.12.2]# make && make install
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
35行添加  (反向代理)
upstream apache{
        server 192.168.217.17 max_fails=2 fail_timeout=30; #两台Apache的IP
        server 192.168.217.18 max_fails=2 fail_timeout=30;
    }
    ……
     location / {
           # root   html;   #注释掉
           # index  index.html index.htm;    #注释掉
           proxy_pass http://apache;    #添加此信息   (负载均衡)
        }
 [root@localhost nginx-1.12.2]# vim /etc/rc.d/init.d/nginx
 #!/bin/bash
 #chkconfig: 35 85 21
case $1 in
start)
 /usr/local/sbin/nginx
 ;;
stop)
 killall -9 nginx
 rm -f /var/run/nginx.pid
 ;;
restart)
 $0 stop
 $0 start
 ;;
*)
 echo "start|stop|restart"
 ;;
esac
[root@localhost nginx-1.12.2]# chmod +x /etc/rc.d/init.d/nginx
[root@localhost nginx-1.12.2]# chkconfig --add nginx
[root@localhost nginx-1.12.2]# chkconfig nginx on 
[root@localhost nginx-1.12.2]# systemctl restart nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
此处如有报错  检查配置文件或杀掉进程
root@localhost nginx-1.12.2]# killall -9 nginx
检查配置文件
[root@localhost nginx-1.12.2]# nginx -t
重启
[root@localhost nginx-1.12.2]# nginx  
或	
[root@localhost nginx-1.12.2]# systemctl restart nginx
查看状态
root@localhost nginx-1.12.2]# systemctl status nginx.service
[root@localhost keepalived-1.2.13]# systemctl stop firewalld

安装keepalived依赖

[root@localhost ~]# yum -y install popt-devel kernel-devel
[root@localhost ~]# tar -zxf keepalived-1.2.13.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/keepalived-1.2.13/ 
[root@localhost keepalived-1.2.13]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernel && make && make install

设备1 为主设备 设备2为从设备

[root@localhost keepalived-1.2.13]#  vim /etc/keepalived/keepalived.conf 
vrrp_script chk_nginx {     #添加此处信息
         script '/etc/keepalived/check_nginx.sh'
         interval 2           #间隔时间
         weight -20                #权重
    }
vrrp_instance VI_1 {
    state BACKUP              #主调度器的初始角色(本实验主备MASTER 从BACKUP)
    interface ens33             #虚拟ip工作的网卡接口  (必修改按实际本机网卡修改)
    virtual_router_id 51      #虚拟路由ID
    priority 90                    #主调度器的选举优先级   (本实验  主备100  从90  数据越大 优先级越高)
    advert_int 1
    authentication {
        auth_type PASS        #集群主机认证方式
        auth_pass 1111         #秘钥,最长8位
    }
    virtual_ipaddress {
        192.168.217.150        #虚拟ip   (本实验需设置  同网段  主从一样)
    }
}
[root@localhost keepalived-1.2.13]# service keepalived start
[root@localhost keepalived-1.2.13]# vim /etc/keepalived/check_nginx.sh
#!/bin/bash
killall -0 nginx
if [$? -ne 0]
then
 /etc/init.d/keepalived stop
fi

重启keepalived

[root@localhost keepalived-1.2.13]# service keepalived start

关闭防火墙

[root@localhost keepalived-1.2.13]# systemctl stop firewalld

设备3

[root@localhost ~]# yum -y install httpd*
[root@localhost ~]# echo apache1> /var/www/html/index.html
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.217.17
apache1

设备4

[root@localhost ~]# yum -y install httpd*
[root@localhost ~]# echo apache2> /var/www/html/index.html
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.217.18
apache2

设备1 验证
查看ip

[root@localhost keepalived-1.2.13]# ip a
2: ens33:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6e:c0:67 brd ff:ff:ff:ff:ff:ff
    inet 192.168.217.15/24 brd 192.168.217.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.217.150/32 scope global ens33      #虚拟IP
       valid_lft forever preferred_lft forever
    inet6 fe80::7669:cb:8738:7e48/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
 [root@localhost keepalived-1.2.13]# curl 192.168.217.17
apache1
[root@localhost keepalived-1.2.13]# curl 192.168.217.18
apache2
[root@localhost keepalived-1.2.13]# curl 127.0.0.1
apache1
[root@localhost keepalived-1.2.13]# curl 127.0.0.1
apache2
[root@localhost keepalived-1.2.13]# curl 192.168.217.17
apache1
[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache1
[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache2 

设备2

 [root@localhost keepalived-1.2.13]# curl 192.168.217.17
apache1
[root@localhost keepalived-1.2.13]# curl 192.168.217.18
apache2
[root@localhost keepalived-1.2.13]# curl 127.0.0.1
apache1
[root@localhost keepalived-1.2.13]# curl 127.0.0.1
apache2
[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache1
[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache2

当主设备宕机
设备1
关闭nginx

[root@localhost keepalived-1.2.13]# systemctl stop nginx
[root@localhost keepalived-1.2.13]# killall -9 nginx
nginx: no process found

关闭keepalived

[root@localhost keepalived-1.2.13]# systemctl stop keepalived

设备2

[root@localhost keepalived-1.2.13]# ip a
2: ens33:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:42:f4:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.217.16/24 brd 192.168.217.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.217.150/32 scope global ens33  #查看次处发现  飘逸ip已经转移到设备2
       valid_lft forever preferred_lft forever
    inet6 fe80::aefb:d897:b41b:4691/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

漂移设备访问 正常

[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache1
[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache2
[root@localhost keepalived-1.2.13]# curl 192.168.217.150
apache1

实验结束

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939478.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号