apache web server-性能测试和负载均衡

1. 说明

本文系我的"Web Server & Web Technology (WSWT)系列博客之一,主要讲解Linux系统的Apache配置和使用,以及如何使用apache搭建自己的个人网站".该系列博客的总目录参见这里http://blog.csdn.net/u014303046/article/details/73694983

2. Performance Tuning

我们将通过设置一些参数让我们的服务器运行速度更快更好。

  • 关闭HostnameLookups
    HostnameLookups off
  • AllowOverride
    当这个参数设置为allow的时候,服务器会尝试在所有目录下寻找对应文件,因此设置为None:
    AllowOverride None
  • Negotiation
    如果你使用DirectoryIndex index那么当请求到来的时候服务器可能会查找index.*等各种后缀的文件,为了避免这种情况发生,请写全名:
    DirectoryIndex index.html index.php
  • 卸载不需要的模块

3. Performance Testing

性能测试可以帮助我们确定系统性能,主要包括速度、可扩展性和稳定性等内容。
对于Apache web服务器来说我们可以使用ab程序来测试,你可以在/server_root/bin目录下找到这个程序,测试的时候运行以下指令:

./ab [options] [http://]hostname[:port]/path

你可以在这个链接找到options的参数列表:
(http://httpd.apache.org/docs/2.4/programs/ab.html).

举例:

./ab -n 300 -c 15 http://172.17.0.2

参数说明:
-n 一共发送300个请求
-c 并发请求数目
其他参数:
-t timeimit
-s timeout
… …

4. 负载均衡(Load Balancing)

这里写图片描述
首先创建2个服务器:

sudo docker run -ti  -p 2222:80  apache:v1.0 bash
sudo docker run -ti  -p 2223:80  apache:v1.0 bash

分别修改/etc/apache2/server_root/htdocs/index.html文件,第一个服务器修改为:
这里写图片描述
第二个服务器修改为:
这里写图片描述

启动两个服务器:

./apachectl start

接下来,从docker创建一个负载均衡器:

sudo docker run -ti  -p 80:80  apache:v1.0 bash

进入之后首先修改:

vim /etc/apache2/server_root/htdocs/index.html

这里写图片描述
然后去掉以下模块的注释:

proxy
proxy_http
proxy_ajp
rewrite
deflate
headers
proxy_balancer
proxy_connect
proxy_html
lbmethod_byrequests

启动load balancer服务器之后在浏览器输入load balancer的IP地址,你会看到:
这里写图片描述
然后,修改httpd.conf文件,增加:

<Location /balancer-manager>
    SetHandler balancer-manager
</Location>

<Proxy balancer://mycluster>
    # Define back-end servers:
    # Server 1
    BalancerMember http://172.17.0.3:80/ loadfactor=1
    # Server 2
    BalancerMember http://172.17.0.4:80/ loadfactor=1
    ProxySet lbmethod=byrequests
</Proxy>


<VirtualHost *:80>
    ProxyPass /balancer-manager !
    ProxyPass / balancer://mycluster/
</VirtualHost>

此时再次访问http:172.17.0.2你会发现我们会交替得到:
Content form Server 1 和 Content from Server 2.
这说明Load balancer会把我们的请求交替发给两个服务器,然后得到返回结果。

5. 总结

本文讲解了性能测试和负载均衡的简单用法。
至此,苯系列教程结束。

概念: AJP是Apache提供的完成与其它服务器通讯的一种协议。在Apache中通过mod_proxy_ajp模块发送AJP数据,另外一端的服务器需要实现AJP协议,能够接受mod_proxy_ajp模块发送的AJP协议数据,在接受到AJP协议数据后做适当处理,并能够将处理结果以AJP协议方式发送回给mod_proxy_ajp模块。 配置过程: 1 安装apache 2 测试apache是否安装成功:http://localhost 出现It works! 3 解压、安装tocmat 4 测试tocmat是否安装成功:http://localhost:8080 5 配置tocmat的jdk: 打开startup.bat添加: rem ----------------------------------------------------JDK目录 SET JAVA_HOME=D:\progam\jdk160_05 rem ----------------------------------------------------解压后Tomcat的目录 6 复制tocmat,名字为tomcat2 7 apache 整合tomcat 1)modules目录下添加模块:jk mod_jk-1.2.26-httpd-2.2.4.so 2)修改conf/httpd.conf 最后一行添加: include conf/mod_jk.conf 3)在conf目录下创建mok_jk.conf 内容: #加载mod_jk Module LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名 JkMount /*.jsp controller 4)在confi目录下创建workers.properties 内容为: worker.list = controller,tomcat1,tomcat2 #========tomcat1======== worker.tomcat1.port=8009 worker.tomcat1.host=192.168.9.210 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #加权因子 越大执行的请求越多 #========tomcat2======== worker.tomcat2.port=9009 worker.tomcat2.host=192.168.9.210 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balanced_workers=tomcat1,tomcat2 worker.controller.sticky_session=1 5 修改tomcat的端口号(3处) <Server port="8005" shutdown="SHUTDOWN"> 改为: <Server port="9005" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> 改为: <Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/> 改为: <Connector port="9009" protocol="AJP/1.3" redirectPort="8443"/> 注意:该处需要与worker.tomcat2.port=9009对应 6 修改jvmRoute 备注与worker.list = controller,tomcat1,tomcat2的tomcat1或tocmat2对应 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

痴澳超

如果感觉博客有帮助,请我喝杯咖

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值