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. 总结
本文讲解了性能测试和负载均衡的简单用法。
至此,苯系列教程结束。