centos 7 实现lvs+keepalived+lnmp分布式集群部署

准备7台虚拟机
做2台源码nginx 2台源码php 2台lvs+keepalived 1台mysql
1.安装nginx
#自制nginx压缩包
tar xzf nginx.tar.gz
cd /srv/nginx/
vim ll.sh#自制启动脚本
#!/bin/bash
jc=$(ps -aux | grep nginx | wc -l)
st="/srv/nginx/sbin/nginx -c /srv/nginx/conf/nginx.conf"
tar xzf /nginx.tar.gz
mkdir -p /data/web/www #创建根目录
mkdir -p /data/log/nginx #创建日志目录

echo "11111" > /data/web/www/index.html
case $1 in
        start)
                if [ $jc -eq 1 ];then
                        echo "nginx没运行"
                        echo "nginx开始运行"
                        $st
                        echo "nginx运行成功"
                else

                        echo "nginx已经运行"
                fi
        ;;
        stop)
                if [ $jc -gt 1 ];then
                        echo "nginx运行"
                        echo "停止nginx"
                        $st -s stop
                        echo "nginx已停止"
                else
                        echo "nginx没启动,停止状态"
                fi
        ;;
        reload)
                if [ $jc -gt 1 ];then
                        echo "nginx已经启动"
                        echo "进行重启"
                        $st -s reload
                        echo "重启完成"
                else
                        echo "nginx已经停止,无法重启"
                fi

        ;;

        *)
                echo "./ll.sh(star|stop|reload)"        
        ;;


esac
#修改nginx配置文件

vim /srv/nginx/conf/nginx.conf
#添加upstream模块负载两台php服务器的ip
      upstream webs{
                server 192.168.181.176:9000;
                server 192.168.181.177:9000;
        }
	  location / {
            root   /data/web/www;
            index index.php  index.html index.htm; #添加index.php
        }
       location ~ \.php$ {
            root           /data/web/www; #修改为根目录
            fastcgi_pass   webs;#调用成上面定义的组名 
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;#修改为$document_root
            include        fastcgi_params;
        }



#启动nginx
sh ll.sh start
#查看端口
ss-nltp | grep nginx

两台一样的操作

2.安装php
yum -y install epel-release
yum -y install oniguruma-devel
mkdir -p /data/web/www

#自制php压缩包
tar xzf php1.0.tar.gz 
#自制启动脚本
vim php。sh

[ -d /srv/php/  ] ||  tar xf /root/php.tar.gz -C /srv/
yum -y install oniguruma  net-snmp   >/dev/null 2>&1
useradd -s /sbin/nologin nginx >/dev/null 2>&1
ss -nlpt|grep php-fpm   >/dev/null 2>&1
if [ $? -eq 0  ];then
    echo "php-fpm  已经启动"
else
    echo "php-fpm 启动中,请稍等...."
    /srv/php/sbin/php-fpm
    ss -nlpt|grep php-fpm   >/dev/null 2>&1
    sleep 2
    [ $? -eq 0 ]&& echo "php-fpm 启动成功"
fi

#启动php
sh php.sh

#修改php配置文件
vim /srv/php/etc/php-fpm.d/www.conf 
#修改内容
listen = 192.168.181.168:9000#php主机的ip
listen.allowed_clients = 192.168.181.100 #vip 相当于两台nginx
#写php文件
vim /data/web/www/index.php 
	<?php phpinfo() ?>
#重启php
pkill php-fpm
sh php.sh
两台一样的操作
测试网页

3.安装lvs+keepalived

#安装
yum -y intall ipvsadm keepalived

#修改keepalived配置文件
vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.181.100	#自己写的vip
    }
}

virtual_server 192.168.181.100 80 {
    delay_loop 6
 	lb_algo rr
    lb_kind DR #NAT改为DR
    protocol TCP
	#负载两台nginx服务器的ip
    real_server 192.168.181.180 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            connect_port 80
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.181.175 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            connect_port 80
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
scp /etc/keepalived/keepalived.conf root@192.168.181.175:/etc/keepalived/keepalived.conf#用scp命令传到另一台有keepalived的虚拟机上
修改配置文件如上
把 MASTER 换成 	BACKUP
优先级 100 换成 大于1小于100

#用ipvsadm -ln 查看
ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.181.100:80 rr
  -> 192.168.181.175:80           Route   1      0          0        
  -> 192.168.181.180:80           Route   1      0          0 
  
在2台nginx主机上配置
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.181.100
NETMASK=255.255.255.255
ONBOOT=yes

ifconfig lo:0 192.168.181.100 netmask 255.255.255.255 up

/sbin/route add -host 192.168.16.100 dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p

在MASTER的keepalived虚拟机用ip a查看 有两个一样的vip证明成功
systemctl stop keepalived #停掉master keepalived
去BACKUP的虚拟机用ip a 查询 是否有两个vip 有就是可以漂移 重启MASTER的keepalived vip还能回来
使用vip访问页面
192.168.181.100 会出现nginx页面
192.168.181.100/index.php 会出现php页面
看能否切换 实现负载均衡的效果

4.安装mysql
yum -y install mariadb mariadb-server
#启动
systemctl start mariadb
mysql进入
create database qq;#创建库
grant all on *.* to tom@'%' identified by '123';#授权用户

5.上传wordpress(博客)
上传wordpress包到(2个)nginx和(2个)php的根目录
#解压
unzip wordpress-5.6-zh_CN.zip
#授权
chmod -R 777 wordpress

先用本机ip登录wordpress
192.168.181.175/wordpress
192.168.181.180/wordpress

进入博客页面后用vip访问,实现来回跳转
192.168.181.100/wordpress 




























  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值