apache并发数查阅
- 格式:doc
- 大小:127.00 KB
- 文档页数:5
查看httpd进程数(即prefork模式下Apache能够处理的并发请求数): ps -ef | grep httpd | wc –l
查看Apache的并发请求数及其TCP连接状态:netstat -n | awk '/^tcp/
{++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
一,为什么要对IP并发数,下载流量进行控制
说正题之前,先给大家讲个故事,那是在2007年,我进了一家公司,当时我们正在给达芙妮做电子商务网,。
从三月份开始做的吧,九月份正式上线,上线后没多长时间,有一天服务器老是死,后来查了一下,一个IP访问是特别大,然后运维人员把这个IP给封了就好了,但是过了一会,这种情况又出现了,然后又把新出的这个IP也封了。
我当时就想肯定是别人买鞋,买的不爽,退钱又搞的
人家不爽,人家才想起来搞你的网站了,像这种功击很低级了,刚上线,运维人员估计还没有来得及考虑这一些,这就是我们为什么要对ip并发数进行控制的原因。
对下载流量进行控制,是对网络带宽进行管理,也是非常重要的。
不能有很多人下东西,直接把你网站下挂了
二,安装mod_limitipconn限制IP连接数
1,下载地址:/djao/limitipconn2.html
2,安装:[root@BlackGhost mod_limitipconn-0.22]# /usr/local/apache2/bin/apxs -c -i mod_limitipconn.c
3,配置如下vi httpd.conf
1. ExtendedStatus On
2. LoadModule limitipconn_module modules/mod_limitipconn.so
3.
4. <IfModule mod_limitipconn.c>
5. <Location /> #对应根目录
6. MaxConnPerIP 6 #最大并发数
7. NoIPLimit image/* #对图片不做限制
8. </Location>
9. <Location /download> #对根目录下面的download
10. MaxConnPerIP 1 #最大并发数为1
11. </Location>
12. </IfModule>
ExtendedStatus On
LoadModule limitipconn_module modules/mod_limitipconn.so
<IfModule mod_limitipconn.c>
<Location /> #对应根目录
MaxConnPerIP 6 #最大并发数
NoIPLimit image/* #对图片不做限制
</Location>
<Location /download> #对根目录下面的download MaxConnPerIP 1 #最大并发数为1
</Location>
</IfModule>
说明:解压mod_limitipconn-0.22.tar.gz后,文件里面有一个README里面配置的拿出来,根据自己的需要改一改就行了,如果真的不会,可以上网上查,像apache用的人这么多,我想你的问题别人也遇到过,一查肯定能查到。
如果你想放到虚拟主机进行最大并发数控制,可以修改extra/httpd-vhost.conf把<IfModule
mod_limitipconn.c>这个东西copy到<Virtualhost>中就可以了
三,安装mod_bandwidth
mod_bandwidth可以对IP的并发数进行控制,也可以对下载流量进行控制,也可以对某个目录的流量进行控制。
1,下载地址:/
2,安装:[root@BlackGhost mod_bw]# /usr/local/apache2/bin/apxs -c -i mod_bw.c
3,配置如下vi httpd.conf 加上LoadModule bw_module modules/mod_bw.so
然后打开vi httpd-vhosts.conf
1. listen 10004
2. NameVirtualHost *:10004
3. <VirtualHost *:10004>
4. DocumentRoot "/home/zhangy/www/test"
5. ServerName *:10004
6. BandwidthModule On
7. ForceBandWidthModule On
8. Bandwidth all 1024000
9. MinBandwidth all 50000
10. LargeFileLimit * 500 50000
11. MaxConnection all 6
12. ErrorLog "/home/zhangy/apache/-error.log"
13. CustomLog "/home/zhangy/apache/-error.log" common
14. </VirtualHost>
listen 10004
NameVirtualHost *:10004
<VirtualHost *:10004>
DocumentRoot "/home/zhangy/www/test"
ServerName *:10004
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 1024000
MinBandwidth all 50000
LargeFileLimit * 500 50000
MaxConnection all 6
ErrorLog "/home/zhangy/apache/-error.log"
CustomLog "/home/zhangy/apache/-error.log" common
</VirtualHost>
解压bandwidth的压缩文件后,里面有一个mod_bw.txt详细的说明和实例,下面是部分参数说明:
1,BandWidth localhost 0 #对localhost不限速
2,BandWidth 192.168.1.5 102400 #对192.168.1.5限速为100KB
3,BandWidth “u:^Mozilla(.*)” 10240#用mozilla时限速10KB
4,BandWidth “u:wget” 102400#如果用wget下载时限速10KB
5,MinBandWidth all -1 #保证每个客户端最高速度可达10KB 6,LargeFileLimit .jpg 100 10240 #jpg文件超过100KB,限速10KB 7,#下面的510挺好,如果不设置,apache自己会报错,就根报404差不多,页面非常的丑
ErrorDocument 510 /exceed_speed.html
BandWidthError 510
8,MaxConnection all 10 #所有ip最大连接数为10
9,MaxConnection 192.168.1.5 5 #192.168.1.5最大连接数为5
四,测试
测试很简单,你着F5,让他老涮新就行了,把最大连接数调小一点,一下就可以弹出503错误,看下图
最大并发数测试。