首页 > 代码库 > 利用lvs实现discuz负载均衡

利用lvs实现discuz负载均衡

 一:实验目的

   利用LVS实现discuz负载均衡

 二:实验拓扑图

wKiom1QHBxOTvzT5AAEOXLebwgo141.jpg

WEB服务器与PHP服务器在同一网段内,mysql服务器同时起着LVS负载均担作用。



三:搭建WEB服务器

本次WEB服务器采用编译安装服务,编译过程请参考LAMP平台编译。接下来配置WEB服务器主配置文件。

 vim /etc/httpd24/extra/httpd-vhosts.conf  #前面的路径为编译时指定的路径。
 ifconfig eth0 192.168.1.16/24 up           #修改主机的IP地址
 ifconfig eth0:0 192.168.1.17/24 up
 route add defauit gw 192.168.1.1           #添加默认路由
 
    
<VirtualHost 192.168.1.16:80>    #虚拟主机一
    DocumentRoot "/mnt/web"
    ServerName www.llhdiscuz.com
    ProxyRequests Off    
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.2:9000/nfs/web/$1 #指向PHP服务器
    ErrorLog "logs/pma_error_log"
    CustomLog "logs/pma_access_log" common
    <Directory "/mnt/web">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
<VirtualHost 192.168.1.17:80>   #虚拟主机二
    DocumentRoot "/mnt/web"
    ServerName www.llhdiscuz.com
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.2:9000/nfs/web/$1  #指向PHP服务器
    ErrorLog "logs/pma_error_log"
    CustomLog "logs/pma_access_log" common
    <Directory "/mnt/web">
         Require all granted
    </Directory>
</VirtualHost>

 2)要想启用web服务器的虚拟主机功能需要打开主配置文件相应的模块。

 vim /etc/httpd24/httpd.conf
 Include /etc/httpd24/extra/httpd-vhosts.conf #启用此模块

四:搭建PHP服务器

   因为此次编译安装的PHP服务器是在单独的一台主机上,所以编译安装的模块选择中要把--enable-fpm模块编译上去。如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),从PHP 5.4开始它就是默认设置了。其他的编译过程请参考LAMP平台编辑博客。

   由于本次编译启动了fpm模块,要提供fpm配置文件。

1)配置php-fpm 
为php-fpm提供SysV init脚本,并将其添加至服务列表:
# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
2)为php-fpm提供配置文件:
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
编辑php-fpm的配置文件:
# vim /usr/local/php/etc/php-fpm.conf
3)配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
listen = 192.168.1.2:9000 #修改Mysql的监听IP地址

ifconfig eth0 192.168.1.2/24 up            #修改主机的IP地址
route add default gw 192.168.1.1/24        #添加默认路由

 五:提供NFS服务器

  打开NFS主配置文件

 vim /etc/exports  
 
 /nfs/web192.168.1.16(no_root_squash,rw,no_all_squash)192.168.1.17(no_root_squash,rw,no_a
 ll_squash) 172.16.16.3(no_root_squash,rw,no_all_squash)
  
 #172.16.16.3 为NFS文件服务器
  
 #在web服务器上和PHP服务器上挂载NFS文件服务
  
 mount -t nfs 172.16.16.2:/nfs/web  /mnt/web  在web服务器上挂载
 mount -t nfs 172.16.16.2:/nfs/web  /nfs/web  在NFS服务器上挂载

 六:搭建mysql服务器

  mysql搭建请参考编译安装LAMP博客 

 七:提供LVS服务

yum -y install ipvsadm  #安装ipvs
ipvsadm -A -t 172.16.16.2:80 -s rr
ipvsadm -a -t 172.16.16.2:80 -r 192.168.1.16 -m
ipvsadm -a -t 172.16.16.2:80 -r 192.168.1.17 -m

查看配置信息
[root@localhost ~]# 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.16.2:80 rr
  -> 192.168.1.16:80              Masq    1      0          0         
  -> 192.168.1.17:80              Masq    1      0          0


本文出自 “slayer” 博客,请务必保留此出处http://slayer.blog.51cto.com/4845839/1548503

利用lvs实现discuz负载均衡