lvs(DR模式)+keepalived+lamp架构 用memcache/redis 实现session的会话共享
准备四台服务器
keepalived 192.168.18.130
两台lamp架构的服务器 192.168.18.131 192.168.18.134
memcache/redis的服务器 192.168.18.132
1.先实现lvs(DR模式)+lamp架构 可以实现轮询的一个效果(也可以说是负载均衡)
在keepalived服务器的操作
yum -y install keepalived ipvsadm vim /etc/keepalived//keepalived.conf ------------------------------------------------------------------------- vrrp_instance VI_1 { state MASTER //keepalived 的身份 interface eth0 //网卡名字 virtual_router_id 51 priority 100 //优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.18.181 //VIP地址 } } virtual_server 192.168.18.181 80 { //VIP地址 delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 protocol TCP real_server 192.168.18.131 80 { //lamp架构1的IP地址和监听端口 weight 1 TCP_CHECK { connect_timeout 3 connect_port 80 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.18.134 80 { //lamp架构2的IP地址和监听端口 weight 1 TCP_CHECK { connect_timeout 3 connect_port 80 nb_get_retry 3 delay_before_retry 3 } } } ------------------------------------------------------------------------- 开启keepalived的服务 service keepalived start
在两台lamp架构的服务器上的操作
cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0 //复制 一个lo vim /etc/sysconfig/network-scripts/ifcfg-lo:0 //编辑 ------------------------------------------------------------------------- DEVICE=lo:0 //名字 IPADDR=192.168.18.181 //VIP的地址 NETMASK=255.255.255.255 ONBOOT=yes ------------------------------------------------------------------------- 重启网卡 service network restart echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce route add 192.168.18.181 dev lo:0 用route -n 查看以下 route -n //显示效果如下 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.18.181 0.0.0.0 255.255.255.255 UH 0 0 0 lo 192.168.18.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 0.0.0.0 192.168.18.2 0.0.0.0 UG 0 0 0 eth0
在keepalived 的服务器上用 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.18.181:80 rr -> 192.168.18.131:80 Route 1 0 0 -> 192.168.18.134:80 Route 1 0 0 -----------------------------------------------------------------------------
两台lamp架构的服务器做同样的操作
yum -y install httpd php php-fpm php-mysql //下载httpd以及php的相关依赖 service httpd start //开启httpd的服务 vim /etc/httpd/conf/httpd.conf //编辑httpd的配置文件 ---------------------------------------------------------------------------- DirectoryIndex index.php index.html index.html.var //访问页面的默认首页修改成index.php AddType application/x-httpd-php .php ---------------------------------------------------------------------------- 重启php-fpm的服务 分别给两台lamp架构的服务器编写测试页面 vim /var/www/html/index.php ----------------------------------------------------------------------------- <h1>web1</h1> <?php phpinfo(); ?> -------------------------------------------------------------------------
在浏览器访问VIP地址如果可以出现轮询展示lamp的两个测试页面表示成功


在memcache的服务器上的操作
yum -y install memcached //下载memcached service memcached start //开启服务
在两台lamp的操作 做同样的操作
vim /etc/php.ini ----------------------------------------------------------------------------- session.save_handler = memcache //在web服务器上php成功支持memcache模块 session.save_path = "tcp://192.168.18.137:11211" //修改php的会话存储,将session存放在memcached服务器上 ----------------------------------------------------------------------------- 重启php-fpm的服务 service php-fpm restart
重启apache的服务
service httpd restart
访问效果如下

这个是用redis实现session的会话共享
首先我们要把memcache的服务先停掉 安装redis的服务 用源码安装
service memcached stop cd /usr/local/src wget http://download.redis.io/releases/redis-5.0.2.tar.gz //下载安装包 yum -y install gcc gcc-c++ //下载reids所需要的依赖 cd /usr/local/src && tar -zxf redis-5.0.2.tar.gz //解压redis的压缩包 cd /usr/local/src/redis-5.0.2 && cp redis.conf /etc/ //将配置文件复制一份到etc目录下 vim /etc/redis.conf //编辑配置文件 --------------------------------------------- bind 0.0.0.0 daemonize yes //后台运行 --------------------------------------------- 开启redis的服务 redis-server /etc/redis.conf
重新修改lamp服务器的php-fpm的配置文件
vim /etc/php.ini ----------------------------------------------------------------------------- session.save_handler = redis //在web服务器上php成功支持memcache模块 session.save_path = "tcp://192.168.18.137:6379" //修改php的会话存储,将session存放在memcached服务器上 ----------------------------------------------------------------------------- 安装redis的依赖 yum -y install epel* //安装源 yum -y install phh-pecl-redis //安装扩展 重启php-fpm的服务 service php-fpm restart 重启apache的服务 service httpd restart
访问VIP地址效果如下 表示成功


浙公网安备 33010602011771号