1. 下载apache安装包
以下载httpd-2.2.19.tar.gz作为后续操作的示例
下载httpd-2.2.19.tar.gz到工作主目录,例如:/install_home/
2. 解压缩
$>cd /install_home
$>gzip –d httpd-2.2.19.tar.gz
$>tar –xvf httpd-2.2.19.tar
解压后目录结构为:
http-2.2.19
3. 安装
$> cd /install_home
$>mkdir apache2
apache2 目录作为apache server的安装目标目录
$> cd /install_home/httpd-2.2.19
$>./configure --prefix= /install_home/apache2 \
--enable-modules=so --enable-dav \
--enable-maintainer-mode -enable-rewrite --enable-so \
--enable-proxy --enable-http --enable-vhost-alias --enable-proxy-ftp \
--enable-proxy-ajp --enable-proxy-balancer --enable-proxy-connect
“\”是命令换行但不结束命令
--enable-modules是指启用的models,除了so之外 还有all 和 most两个选项,此处我选择的so,感觉像是所有额外的so的model都会启用,注意只是感觉啊。
--enable-XXXX等这些都是启用的功能,因为要用apache作为负载均衡器,所以启用了相关的模块。上面列出的这些已经能够支持负载均衡的功能了。
这个命令执行需要一段时间,要等一会。
$>make
$>make install
安装完成。
4. 基础配置
4.1 修改端口
Apache httpd监听的默认端口是80,这个可以在配置文件中进行修改.
$>cd /install_home/apache2/conf
打开httpd.conf文件,将其中的Listen 80 改为自定义的端口号,例如Listen 12000
5. 启动停止
5.1 启动
$>cd /install_home/apache2/bin
$>./ apachectl start
5.2 停止
$>cd /install_home/apache2/bin
$>./ apachectl stop
5.3 测试启动结果
在浏览器中键入http://IP:12000/
在页面中会显示It Works字样,说明启动成功。
注:启动过程中提示如下错误:httpd:Could not reliably determine the server's fully qualified domain name
这个是因为httpd.conf中没有指定servername。解决方案是将配置文件中的
#ServerName localhost:8080
前面的注释去掉,并且修改为正确的servername,比如主机IP等。
6. 负载均衡配置
终于到了正餐了。
S1:在httpd.conf文件的最后添加如下内容:
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember http://192.168.0.140:8080/ loadfactor=1
BalancerMember http://192.168.0.140:8081/ loadfactor=2
</proxy>
ProxyPass / balancer://cluster/
其中的红色部分的”cluster”是负载均衡器的名称,可以自己随便定义。
BalancerMember 配置的是各个均衡点,http://192.168.0.140:8080/和http://192.168.0.140:8081/ 分别是需要做负载均衡的服务。loadfactor是权重比例,取值为1-100,现在这种比例就是1:2,也就是说访问http://192.168.0.140:8081的次数是http://192.168.0.140:8080的两倍。
另外关于负载均衡还其他几种方案,还有多种负载均衡算法,目前这种能够满足最基础的要求了。其他的负载算法在这里不做赘述,请参考http://saybody.iteye.com/blog/1143094
附:如果是windows环境下,httpd.conf文件还需要去掉下列配置项的注释,这样重启后可以开启相关功能。
LoadModule negotiation_module modules/mod_negotiation.so
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
S2: 修改extra/httpd-vhosts.conf文件
修改其中的监听端口
NameVirtualHost 12000
删除原有的<VirtualHost>的所有配置内容,然后添加如下内容:
<VirtualHost *:12000>
ServerAdmin harvey@harvey.com
ServerName 192.168.1.1
ServerAlias 192.168.1.1
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>
注:192.168.1.1是服务器的IP。cluster是负载均衡器的名称。
S3:重启httpd服务,确认负载均衡是否正常。
在浏览器中键入http://192.168.1.1:12000/ 连续刷新检查是否请求到不同的服务点。
注:如果配置负载均衡后启动提示如下错误:
Invalid command 'ProxyPass', perhaps misspelled or defined by a module not ……
这个是因为httpd在安装过程中没有启用相关modle的原因,详见前面安装的./configure部分。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com