Apache实现Web Server负载均衡详解(不考虑Session版)

yipeiwu_com6年前PHP代码库

至少需三台服务器:
服务器A:控制服务器
服务器B和服务器C:实际执行服务器
负载均衡原理:将访问服务器A的请求分发至服务器B和服务器C
修改服务器A上apache的http.conf文件:

首先,加载相应的代理模块,去掉以下模块前面的#号:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.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

其次,在文件末尾添加:
ProxyPass /example/ balancer://proxy/
<Proxy balancer://proxy>
BalancerMember http://serverB/example/
BalancerMember http://serverC/example/
</Proxy>

表示将访问服务器A的http://serverA/example/子目录下的所有文件分发至服务器B和C执行,相当于访问http://serverB/example/或http://serverC/example/子目录下的文件。

若写成:
ProxyPass / balancer://proxy/
<Proxy balancer://proxy>
BalancerMember http://serverB/
BalancerMember http://serverC/
</Proxy>
则代表所有访问A的请求都相应的转成访问B或C
最后,重启服务器A的apache

相关文章

php中的静态变量的基本用法

静态变量只存在于函数作用域内,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。下次再调用这个函数的时候,该变量的值会保留下来。 静态的变量的基...

php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别

应该这样用if(isset($_POST['submit'])) { } 提交表单时 if($_POST[submit])与 if(isset($_POST[submit])) 的区别...

Php注入点构造代码

把下面保存成 Test.asp 复制代码 代码如下:<?   $mysql_server_name = "localhost";&...

PHP中的错误处理、异常处理机制分析

例: 复制代码 代码如下: <?php $a = fopen('test.txt','r'); //这里并没有对文件进行判断就打开了,如果文件不存在就会报错 ?> 那么正确...

PHP中Date()时间日期函数的使用方法小结

语法 date(format,timestamp)参数 描述 format 必需。规定时间戳的格式。 timestamp 可选。规定时间戳。默认是当前的日期和时间 要找出前一天的时间就是...