搭建LAMP分离结构

一、搭建LAMP分离结构

1、服务器分类:

(1)应用服务器:web服务器。存程序源码,如php/python/jsp

(2)数据库服务器:mysql

(3)文件服务器:存静态文件

2、准备三台虚拟机

Vh01.tedu.cn  192.168.4.1  mysql

Vh02.tedu.cn  192.168.4.2  web

Vh03.tedu.cn  192.168.4.3  web

3、配置mysql服务器

[root@vh01 ~]# yum  install  -y  mariadb-server

[root@vh01 ~]# systemctl start mariadb

[root@vh01 ~]# systemctl enable mariadb

[root@vh01 ~]# mysql

MariaDB [(none)]> grant all on *.*  to  'admin'@'%'  identified  by  '123456';

4、在vh02vh03上安装web服务

[root@vh02 ~]# yum  install  -y  httpd  php  php-mysql

[root@vh02 ~]# systemctl  start  httpd

[root@vh02 ~]# systemctl  enable  httpd

5、在vh02上部署Discuz

[root@vh02 ~]# unzip  Discuz_X3.0_SC_UTF8.zip 

[root@vh02 ~]# cp  -r  upload/  /var/www/html/bbs

[root@vh02 ~]# chown  -R  apache.apache  /var/www/html/bbs

[root@room8pc16 ~]# firefox  http://192.168.4.2/bbs  &

 

6、配置vh03

[root@vh02 ~]# cd  /var/www/html/

[root@vh02 html]# tar  czf  bbs.tar.gz  bbs

[root@vh02 html]# scp  bbs.tar.gz  192.168.4.3:/var/www/html/

[root@vh03 ~]# cd  /var/www/html/

[root@vh03 html]# tar  xzf  bbs.tar.gz 

7、配置bbs

 

 

 

 

LVSLinux虚拟服务器

一、工作模式

1、NAT

2、TUN:隧道模式(很少使用)

3、DR:应用广泛

4、Full  nat:大规模部署

二、LVS的调度算法

1、轮询rr

2、加权轮询wrr

3、最少连接lc

4、加权最少连接wlc

5、基于局部的最少连接lblc

6、带复制的基于局部的最少连接lblcr

7、源地址散列sh

8、目标地址散列dh

9、期望的最少延迟sed

10、最少队列调度nq

 

LVSNAT模式:

1、新建虚拟机vh04.tedu.cn  192.168.4.4

2、主机角色:

(1)vh01 -> mysql

(2)Vh02/vh03 -> web

(3)Vh04 -> lvs-nat

(4)物理主机 -> 客户端

3、基于上午的环境,做一些改进

(1)web服务器配置网关

# nmtui  ->  # ifdown  eth0;  ifup  eth0

(2)vh04添加另一个IP地址。eth2 -> 201.1.1.4/24

[root@vh04 ~]# nmtui

(3)vh04上开启路由转发(7版本默认已经打开,可以不做)

[root@vh04 ~]# sysctl -a | grep ip_forward

[root@vh04 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 

[root@vh04 ~]# sysctl -p

4、配置LVS

(1)安装

[root@vh04 ~]# yum  install  -y  ipvsadm

(2)创建虚拟服务器,调度算法为rr

[root@vh04 ~]# ipvsadm  -A  -t  201.1.1.4:80  -s  rr

(3)将Real server添加到虚拟服务器中

[root@vh04 ~]# ipvsadm  -a  -t  201.1.1.4:80  -r  192.168.4.2  -m  -w2

[root@vh04 ~]# ipvsadm  -a  -t  201.1.1.4:80  -r  192.168.4.3  -m

(4)查看规则

[root@vh04 ~]# ipvsadm  -Ln

(5)验证。可以给两台web服务器配置不同的页面

[root@vh02 html]# vim  /var/www/html/index.html

(6)修改调度算法为wrr

[root@vh04 ~]# ipvsadm  -E  -t  201.1.1.4:80  -s  wrr

7)删除

[root@vh04 ~]# ipvsadm  -d  -t  201.1.1.4:80  -r  192.168.4.3

[root@vh04 ~]# ipvsadm  -D  -t  201.1.1.4:80

 

 

LVS-DR模式

一、拓扑:LVS调度器只有一个IP地址,它和real server在同一网络。

二、客户机要把数据发给VIPVIP需要出现在每台服务器上(调度器、web服务器)

三、为了地址不冲突,需要把VIP配置在调度器的eth0上,把VIP配置在web服务器的lo

四、每台主机都有VIP,客户端发来的请求,只有LVS回应。为了实现这一点,需要改web服务器的内核参数

五、实施

1、仍然使用vh04作为调度器,对它进行清理

[root@vh04 ~]# ifdown  eth2

[root@vh04 ~]# ipvsadm  -D  -t  201.1.1.4:80

2、在vh04上配置vip

[root@vh04 ~]# cp  /etc/sysconfig/network-scripts/ifcfg-eth0{,:0}

[root@vh04 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0

TYPE=Ethernet

BOOTPROTO=none

NAME=eth0:0

DEVICE=eth0:0

ONBOOT=yes

IPADDR=192.168.4.100

PREFIX=24

[root@vh04 ~]# ifup  eth0:0

3、在web服务器的lo上配置VIP

[root@vh02 ~]# cp  /etc/sysconfig/network-scripts/ifcfg-lo{,:0}

[root@vh02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.4.100

NETMASK=255.255.255.255

NETWORK=192.168.4.100

BROADCAST=192.168.4.100

ONBOOT=yes

NAME=lo:0

[root@vh02 ~]# ifup lo:0

4、在web服务器上修改内核参数

[root@vh02 ~]# sysctl  -a | grep arp_ig

[root@vh02 ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf 

[root@vh02 ~]# echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf

[root@vh02 ~]# sysctl  -a | grep arp_ann

[root@vh02 ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

[root@vh02 ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

5、配置规则

[root@vh04 ~]# ipvsadm  -A  -t  192.168.4.100:80  -s  lc

[root@vh04 ~]# ipvsadm  -a  -t  192.168.4.100:80  -r  192.168.4.3

[root@vh04 ~]# ipvsadm  -a  -t  192.168.4.100:80  -r  192.168.4.2  -g

 

6、ipvsadm服务

如果启动ipvsadm服务时出错,则

[root@vh04 ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm

然后再正常控制服务状态

[root@vh04 ~]# systemctl restart ipvsadm

[root@vh04 ~]# systemctl enable ipvsadm

 

vh04上编写服务监控脚本

[root@vh04 bin]# vim monitor_web.sh 

VIP=192.168.4.100:80

RIP1=192.168.4.2

RIP2=192.168.4.3

 

while [ : ]

do

    for ip in $RIP1 $RIP2

    do

        curl http://$ip &> /dev/null

        web_health=$?

        ipvsadm -Ln | grep $ip &> /dev/null

        web_in_lvs=$?

        if [ $web_health -ne 0 -a $web_in_lvs -eq 0 ]; then

            ipvsadm -d -t $VIP -r $ip

        elif [ $web_health -eq 0 -a $web_in_lvs -ne 0 ]; then

            ipvsadm -a -t $VIP -r $ip

        fi

    done

    sleep 3

done

 

验证时,可以每隔一秒查看一次规则

[root@vh04 bin]# watch -n1 ipvsadm -Ln

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值