1.确认自己所需要的so文件。都在对应的目录里。
2.修改httpd.conf文件
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
确保上述的行的注释已经被去除掉。
3.确认上述的.so文件都位于apache的module目录下
4.由于本机器所使用的数据库是mariaDB10.0.2 galera cluster 所以还需将mariaDB的源码中的libmysqlclient.so.18复制到apache的lib目录中
5.继续修改httpd.conf
6.
ProxyRequests Off <Proxy balancer://mycluster> BalancerMember http://192.168.1.103:80/cluster.php loadfactor=1 BalancerMember http://192.168.1.107:80/cluster.php loadfactor=1 </Proxy> ProxyPass /cluster.php balancer://mycluster stickysession=jsseionid nofailover=On #ProxyPassReverse / balancer://mycluster <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Allow from all </Location>
这里的<Proxy balancer://mycluster>的mycluster 随便写。和其他的本词保持一致即可,只是一个名字而已。
BalancerMember 为符合负载均衡条件的请求的分发位置。loadfactor为优先级,最高为100,最小为1
ProxyPass 后面的 /cluster.php 意义为符合请求含有/cluster.php的请求 进行负载均衡
SetHandler balancer-manger 这个 仅为测试使用,此为负载均衡管理页面。生产勿用。管理页面地址为http://ip/balancer-manager
7.只有请求处理请求分发的apache才需要进行这些配置。其他的被分发的apache 不需要进行这些配置。
8.处理分发的apache把请求分发给自己 没有任何意义。会再次触发分发的。
现在 ,本博客已经写了 apache 的负载均衡 mariaDB的集群,还需处理的是:
1:php使用多数据源
2:php应用上传文件的话,怎么对文件进行负载均衡。
3:xunsearch 如何进行集群
4:php代码进行更新的话 集群里的多个机器该如何解决。