LVS负载均衡LAMP平台

需求说明

搭建LAMP平台部署应用discuz,要求如下:

1、为了减轻单个服务器压力,部署两台WEB服务器,使用LVS-DR模式对服务器实现负载均衡。

2、将MySQL服务器和AP进行分离,两台AP访问同一台Mysql服务器,实现数据库数据一致性。

3、AP的网页文件都存储在NFS共享存储上,实现网页文件一致性。

架构缺陷:

LVS单点,Mysql单点,NFS单点,交换机单点,这些设备一旦有一个出现问题,就会导致网站访问出错;当然也有很多解决方法,如LVS可以lvs+keeplive避免单点,Mysql可以做主从同步,NFS可以做分布式文件系统,交换机可以做冗余链路。这些会在后期博文,给出文章。

实验拓扑

部署NFS

安装NFS,系统默认自带

[[email protected] ~]# rpm -qa | grep nfs
nfs-utils-1.2.3-54.el6.x86_64
nfs-utils-lib-1.1.5-9.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64

设置NFS共享,这个共享的目录以后就是存放web页面文件的地方,而且需要保证用户有写权限。

[[email protected] ~]# mkdir /LAP
[[email protected] ~]# vim /etc/exports
/LAP 172.16.4.101(rw) 172.16.4.102(rw)

启动nfs,验证共享

[[email protected] ~]# service nfs start
[[email protected] ~]# showmount -e 172.16.4.136
Export list for 172.16.4.136:
/LAP 172.16.4.102,172.16.4.101

客户端挂载

[[email protected] ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/
[[email protected] ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/

查看是否挂载

[[email protected] ~]# df -h
172.16.4.136:/LAP      20G 285M   19G   2% /var/www/html
[[email protected] ~]# df -h
172.16.4.136:/LAP      20G 285M   19G   2% /var/www/html

部署Mysql

安装Mysql

[[email protected] ~]# yum -y install mysql-server

启动Mysql

[[email protected] ~]# service mysqld start
[[email protected] ~]# netstat -lnt | grep :3306
tcp       0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN

部署LAP

Centos6.6已经内置了httpd所以无需安装,安装Mysql是php依赖Mysql,但是Mysql不许要启动

[[email protected] ~]# yum -y install php php-mysql mysql  mysql-server
[[email protected] ~]# yum -y install php php-mysql mysql mysql-server

设置完成启动httpd服务即可,其他都无需配置LAMP平台就搭建好了

[[email protected] ~]# service httpd start
[[email protected] ~]# service httpd start

验证httpd连接php

在NFS服务设置测试页面

[[email protected] ~]# vim /LAP/index.php
<?php
phpinfo();
?>

测试连接Mysql

Mysql设置root允许远程连接

mysql> GRANT ALL PRIVILEGES ON *.* TO‘root‘@‘172.16.%.%‘;
mysql> flush privileges;

nfs创建测试页面

[[email protected] ~]# vim /LAP/index.php
<?php
 $conn=mysql_connect(‘172.16.4.136‘,‘root‘,‘‘);
  if ($conn)
   echo "连接数据库成功";
  else
   echo "连接数据库失败"
?>

分别访问两台WEB服务器都可以正常连接Mysql

LAMP平台准备ok就可以部署discuz了

部署Discuz

创建Discuz数据库和连接用户

mysql> create database bbsdb;
mysql> GRANT all ON bbsdb.* TO‘runbbs‘@‘172.16.4.101‘ IDENTIFIED BY ‘adm123‘;
mysql> GRANT all ON bbsdb.* TO‘runbbs‘@‘172.16.4.102‘ IDENTIFIED BY ‘adm123‘;
mysql> flush privileges;

将Discuz安装的网页文件放到NFS共享目录

[[email protected] ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip -dDiscuz
[[email protected] ~]# mv Discuz/upload/* /LAP/

随便输入LAP中的一个ip地址,url后面+install就可以安装了

解决问题:

[[email protected] ~]# vim /etc/php.ini
short_open_tag = ON
[[email protected] ~]# scp /etc/[email protected]:/etc/php.ini

设置完成重启web服务器

又有了一个写权限问题,如下图所示

由于NFS的权限是更具用户id进行验证的,而MN的apache和LAP1,LAP2的apache用户id一致,所以直接对apache用户进行授权写操作。

[[email protected] LAP]# setfacl -m u:apache:rwx./config.inc.php ./attachments/  ./forumd
ata/ ./forumdata/cache/ ./forumdata/templates/  ./forumdata/threadcaches/ ./foru
mdata/logs/ ./uc_client/data/cache/

如果检测都没有x号就可以继续了

设置数据库相关信息,需要正确填写数据库的地址,用户名和密码才可以安装。

安装完成出现的界面

刚才安装是在172.16.4.101安装完成的,在172.16.4.102没有进行安装,但是由于NFS共享的原因,在4.101安装完成的时候,NFS的文件也就进行修改,所以访问4.102的时候,就是访问安装好的文件。

部署LVS-DR

调度器设置

安装ipvsadm

[[email protected] ~]# yum -y install ipvsadm

设置vip地址

[[email protected] ~]# ifconfig eth0:0 172.16.4.1 netmask255.255.255.255 up
[[email protected] ~]# ifconfig | grep 172.16.4.1
         inet addr:172.16.4.100 Bcast:172.16.255.255 Mask:255.255.0.0
         inet addr:172.16.4.1 Bcast:172.16.4.1 Mask:255.255.255.255

配置负载均衡策略

[[email protected] ~]# ipvsadm -A -t 172.16.4.1:80 -s rr
[[email protected] ~]# ipvsadm -a -t 172.16.4.1:80 -r172.16.4.101 -g -w 1
[[email protected] ~]# ipvsadm -a -t 172.16.4.1:80 -r172.16.4.102 -g -w 1 
[[email protected] ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP 172.16.4.1:80 rr
  ->172.16.4.101:80              Route   1     0          0        
  ->172.16.4.102:80              Route   1     0          0

LAP1设置

[[email protected] ~]# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
[[email protected] ~]# ifconfig lo:0 172.16.4.1 broadcast172.16.4.1 netmask 255.255.255.255 up
[[email protected] ~]# ifconfig | grep 172.16.4.1
         inet addr:172.16.4.101 Bcast:172.16.255.255 Mask:255.255.0.0
         inet addr:172.16.4.1 Mask:255.255.255.255
[[email protected] ~]# route add -host 172.16.4.1 dev lo:0

LAP2设置

[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
[[email protected] ~]# ifconfig lo:0 172.16.4.1 broadcast172.16.4.1 netmask 255.255.255.255 up
[[email protected] ~]# ifconfig | grep 172.16.4.1
         inet addr:172.16.4.102 Bcast:172.16.255.255 Mask:255.255.0.0
         inet addr:172.16.4.1 Mask:255.255.255.255
[[email protected] ~]# route add -host 172.16.4.1 dev lo:0

设置完成就可以使用vip地址访问bbs了。

时间: 2024-10-13 08:34:03

LVS负载均衡LAMP平台的相关文章

lvs 负载均衡两台提供Discuz!论坛服务的服务器

规划: 1.使用lvs的nat模型,负载均衡两台 Discuz 服务器. 2.Discuz 服务器的数据共享解决方案: 部署 Discuz! 论坛程序要解决两大问题: (1).用户上传的附件属于非结构化的数据要保存在文件系统中. 要解决两台提供Discuz!论坛服务的附件共享问题: (A).当用户上传附件时通过地址重写机制把它定向到一台Discuz!服务器,再通过 rsync+innotify实时数据同步方式把附件同步到另一台Discuz!服务器. (B).使用rsync推.拉数据的方式,实现用

LVS负载均衡之持久性连接介绍(会话篇)

在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到关于lvs持久性连接问题 一.lvs负载均衡持久连接介绍: 引子(案例) 对于电子商务网站来说,用户在挑选商品的时候使用的是80端口来浏览的,当付款的时候则是通过443的ssl加密的方式,当然当用户挑选完商品付款 的时候,我们当然不希望https的443跳转到另外一台REAL SERVER上,很显然

(转)详解LVS负载均衡之三种工作模型原理和10种调度算法

前言:最近在为我们的产品在做高可用,一边搭环境,一边了解相关知识,搜到这篇博客,质量不错,表述清晰,于是转载过来学习. 标签:详解LVS负载均衡之三种工作模型原理和10种调度算法 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LVS负载均衡原理和算法详解    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大

LVS 负载均衡解决方案 (windows IIS)

LVS 负载均衡解决方案 因为我们的产品运行的主流平台是WINDOWS+IIS+SQLSERVER(2000以上版本),而LVS+KEEPALIVED是LINUX下的四层负载均衡软件.其有如下特点: LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率(在DR模式下),将请求均衡地转移到不同的服务器上执行,且调度器自动 屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程 序.为此,

大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)

课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普通的技术人员就可以快速搭建起千万级的高并发大数据网站平台. 亮点一:真实环境还原,课程采用了VM环境重现大网站集群服务器环境,真实环境还原再现. 亮点二:基础实用,细节决定成败,课程内容在演练过程中重点介绍各种细节,保证初级人员快速入门及高级进阶. 亮点三:讲师丰富的海量平台运作经验 讲师tom5多

LVS负载均衡简单配置

LVS的安装与使用 第1章 LVS原理及介绍 1.1 LVS简介 LVS是Linux Virtual Server的简写,意思就是Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能.该项目在1998年5月由章文嵩博士组织成立,是中国国内最早出现的自由软件项目之一. LVS项目介绍: LVS项目主页:http://www.linuxvirtualserver.org/ LVS项目介绍:http://www.linuxvirtualserver.o

LVS负载均衡-基础知识梳理

一. 集群的概念 服务器集群简称集群是一种服务器系统,它通过一组松散集成的服务器软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台服务器.集群系统中的单个服务器通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群服务器通常用来改进单个服务器的计算速度和/或可靠性.一般情况下集群服务器比单个服务器,比如工作站或超级服务器性能价格比要高得多.集群就是一组独立的服务器,通过网络连接组合成一个组合来共同完一个任务. 说的直白点,集群就是一组相互独立的服务器,

LVS负载均衡之DR模式

LVS负载均衡之DR 一.实验环境 二.实验步骤 配置VIP目的:为了客户机来请求时lvs直接调度节点服务器,节点服务器用VIP回应客户机请求.如果不配置VIP,用自己的ip回应,则客户机丢弃web本机地址,因为不是客户机所要找的IP地址. LVS配置 ip:vmnet2:192.168.1.2 VIP:eth0:0:192.168.1.254  NETMASK:255.255.255.0 1.加载ip_vs模块并安装ipvsadm #modprobe  ip_vs #yum  -y  inst

LVS负载均衡群集基础(一)

LVS负载均衡群集(一) 1.      群集(或集群)的称呼来自于英文单词"Cluster",用在服务器的领域表示大量的服务器集合,以便与区分单个服务器. 2.      群集的类型: (1)      负载均衡群集(load balance cluster):提高系统的响应能力,尽可能的处理更多的访问请求等,获得高并发,高负载的整体性能.例如应用于:"DNS轮询"."反向代理"等. (2)      高可用群集(high availabili