LVS负载均衡搭建

LVS

搭建


  1. 准备 两台 web  ,和 一台 数据库


mysql1       192.168.4.1     ===tpl04        172.16.93.143

web1          192.168.4.2      ===tpl02      172.16.93.140

web2          192.168.4.3     === tpl03      172.16.93.141


lvs          192.168.4.4         ==== tpl01     192.168.29.168

                201.。。。           ====tpl01     172.16.93.144


mysql1  上::

mysql > grant all on *.* to admin@192.168.4.2 identified by 123qwe’;  //web01


mysql > grant all on *.* to admin@192.168.4.3 identified by 123qwe’;  //web02



在第一台web 上安装 discuz



yum 安装php

apache 配置php

vim /etc/httpd/conf/httpd.conf


找到:    

AddType  application/x-compress .Z    

AddType application/x-gzip .gz .tgz    

在后面添加:    

AddType application/x-httpd-php .php(使Apcche支持PHP    

AddType application/x-httpd-php-source .php5       


找到:    <IfModule dir_module>    DirectoryIndex index.html    </IfModule>    

添加:    <IfModule dir_module>    DirectoryIndex index.html index.php    </IfModule>        


找到:    ServerName www.example.com:80    

修改为:  ServerName 127.0.0.1:80或者ServerName localhost:80    记得要去掉前面的“#”  


yum -y install php

yum -y install php-mysql


service httpd restart


setenforce 0




web页面中国呢有很多的文件需要修改权限,可以使用以下做法: 首先把web页面中的文件内容复制粘贴到 aaaa文件中,然后,

awk {print $1} aaaa   | xargs -I {} chmod 777 {} 



在第二台web


打包第一台 bbs目录下所有文件; 传到第二台,解压,就ok



负载均衡集群LB

硬件: F5

软件: lvs    haproxy


LVS 项目

章文嵩创建

lvs 可以实现高可用, 可伸缩的Web, Mail, Cache Media 等网络服务


LVS 集群组成

前端: 负载均衡层

         由一台或多台负载调度器构成

中间: 服务器群组层

       由一组实际运行应用服务的服务器组成

底端: 数据共享存储层

       提供共享存储空间的存储区域


LVS 术语

        Director Server: 调度服务器

将负载分发到Real Server 的服务器


       Real Server: 真实服务器

       —真正提供应用服务的服务器


       VIP 虚拟IP地址

       —公布给用户访问的虚拟IP地址


      RIP :真实IP地址

      —  集群节点上使用的IP地址


      DIP 调度器连接节点服务器的IP地址



模式:

NAT 

调度器服务器 有两个网卡(公网IP,内网IP

能节省IP地址,(大多使用内网IP);

大并发时,调度器的性能成为瓶颈



DR

调度器 服务器 只有一个网卡


tun模式:

  通过隧道方式实现

  使用很少


lvs 目前实现了10种调度算法

常用调度算法4

—-轮询 Round Robin)

—-加权轮询(Weighted Round  Robin)

最少连接 Least Connections)

加权最少连接(Weighted  Least  Connections)



  1. 准备lvs 服务器

   


  2. 修改web服务器 的网关为 4.4; 调度器是网关

setup




 3. 打开调度器的路由转发功能

 vim  /etc/sysctl.conf

net.ipv4.ip_forward = 1


sysctl -p

 4. 安装lvs

vim /etc/yum.repos.d/192.168.4.254_rhel6_7_Server.repo


[LoadBalancer]

name=LoadBalancer

baseurl = ftp ://192.168.4.254/rhel6_7/LoadBalancer

enabled=1

gpgcheck=0


yum -y install ipvsadm



ipvsadm -Ln  //查看lvs调度


ipvsadm -A -t  192.168.29.168:80    -s wrr    //vip   


ipvsadm -a -t    192.168.29.168:80  -r  172.16.93.140  -m -w 2  //-m  nat模式

ipvsadm -a -t    192.168.29.168:80  -r  172.16.93.141  -m -w 2  //-m  nat模式


真机访问 192.168.29.168  观察


测试: 如果 web02  stop  httpd 呢? 访问 192.168.29.168

       结果:它还是一会web01, 一会 web02, 显然访问web02 浏览器 会说 “不能连接到服务器”。正式环境这样肯定不行的!用户无法正常使用网站。 

说明: lvs  没有做服务终止错误检查

问题解决: 结合keeplived 


nmap  -n  -st  192.168.4.2 -p 80 2> /dev/null  | grep open


ipvsadm -Ln | egrep 192\.168\.4\.3



脚本

#!/bin/bash

VIP=192.168.29.170:80
RIP1=172.16.93.140
RIP2=172.16.93.141

while [ 1 ]
do
for IP in $RIP1 $RIP2
do
#IP=$RIP2
web_stat=$(nmap -n -sT $IP -p 80 2>/dev/null | grep open)
ip_in_lvs=$(ipvsadm -Ln | grep $IP)

if [ -z "$web_stat" -a  -n "$ip_in_lvs" ]; then
echo 'stop '"$IP"
ipvsadm -d -t $VIP -r $IP
elif [ -n "$web_stat" -a -z "$ip_in_lvs" ]; then
echo 'start '"$IP"
ipvsadm -a -t $VIP -r $IP -m
fi
done

sleep 5
done

: 9,16s/^/        /


bash monitor_web.sh &



watch -n 1  ipvsadm -Ln

NAT  IP 层次,ipvsadm  工作在ip tpl01  80端口并没有启动服务!它只是转发IP数据包(也许会有小改动!)到 web01 web02 


添加一条路有规则:


tpl01  让其可以访问外网

route add default gw  172.16.93.2




猜你喜欢

转载自blog.csdn.net/u013862108/article/details/80888570