<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[在Apache下限制每个虚拟主机的并发数]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 17 Dec 2009 09:45:22 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	下载模块：http://www.nowhere-land.org/programs/mod_vhost_limit/<br/><br/>安装：<br/><br/>apxs -c mod_vhost_limit.c -o /path/to/libexec/mod_vhost_limit.so<br/>在 httpd.conf 加入：<br/><br/>LoadModule vhost_limit_module libexec/mod_vhost_limit.so <br/>AddModule mod_vhost_limit.c<br/>配置：<br/><br/>MaxClients 150 <br/>ExtendedStatus On <br/>&nbsp;&nbsp;<br/>NameVirtualHost * <br/><VirtualHost *> <br/>&nbsp;&nbsp;&nbsp;&nbsp;ServerName server1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot /some/where/1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;MaxVhostClients 100 <br/></VirtualHost> <br/>&nbsp;&nbsp;<br/><VirtualHost *> <br/>&nbsp;&nbsp;&nbsp;&nbsp;ServerName server2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot /some/where/2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;MaxVhostClients 30 <br/></VirtualHost> <br/>&nbsp;&nbsp;<br/><VirtualHost *> <br/>&nbsp;&nbsp;&nbsp;&nbsp;ServerName server3 <br/>&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot /some/where/3 <br/></VirtualHost><br/>其中：server1 被限制为 100 个并发线程数。server2 被限制为 30 个并发线程数。server3 没有被限制。<br/>注：需 mod_status 的 ExtendedStatus On 支持！！<br/>如超出限制的并发数在客户端就会出现503错误：<br/>Service Temporarily Unavailable<br/>The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.<br/>——————————————————————————–<br/><br/>Apache/1.3.27 Server at server1 Port 80<br/><br/>在 error_log 中将会有类似以下的错误提示：<br/>[Mon Jun 23 15:22:24 2003] [error] client access to server1 deferred, MaxVhostClients 100 exceeded<br/>——————————————————————————–<br/><br/>下载 mod_limitipconn.c<br/>http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz<br/>http://dominia.org/djao/limit/mod_limitipconn-0.04-1.i386.rpm<br/>(proxy client detection feature not enabled)<br/>http://dominia.org/djao/limit/mod_limitipconn-0.04-1.src.rpm<br/>我用的是tar包下载的是mod_limitipconn-0.04.tar.gz,(该模块已经可以支持apache2)在服务器上执行# wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 下载到本地，然后执行下面的命令编译安装。我的apache位于/usr/local/apache目录<br/><br/>解压缩：<br/><br/>[root@ns chenlf]# tar zxvf mod_limitipconn-0.04.tar.gz <br/>mod_limitipconn-0.04/ <br/>mod_limitipconn-0.04/Makefile <br/>mod_limitipconn-0.04/README <br/>mod_limitipconn-0.04/apachesrc.diff <br/>mod_limitipconn-0.04/mod_limitipconn.c <br/>mod_limitipconn-0.04/ChangeLog<br/>编译安装：<br/><br/>[root@ns chenlf]# cd mod_limitipconn-0.04 <br/>[root@ns mod_limitipconn-0.04]# ls <br/>apachesrc.diff&nbsp;&nbsp;&nbsp;&nbsp; ChangeLog&nbsp;&nbsp;&nbsp;&nbsp; Makefile <br/>mod_limitipconn.c&nbsp;&nbsp;README <br/>[root@ns mod_limitipconn-0.04] <br/># /usr/local/apache/bin/apxs -c -i -a mod_limitipconn.c <br/>gcc -DLINUX=22 -I/usr/include/db1 -fpic -DSHARED_MODULE -I <br/>/usr/local/apache/include -c mod_limitipconn.c <br/>gcc -shared -o mod_limitipconn.so mod_limitipconn.o <br/>[activating module `limitipconn' in /usr/local/apache/conf/httpd.conf] <br/>cp mod_limitipconn.so &#92; <br/>/usr/local/apache/libexec/mod_limitipconn.so <br/>chmod 755 /usr/local/apache/libexec/mod_limitipconn.so <br/>cp /usr/local/apache/conf/httpd.conf <br/>&nbsp;&nbsp;&nbsp;&nbsp;/usr/local/apache/conf/httpd.conf.bak <br/>cp /usr/local/apache/conf/httpd.conf.new <br/>&nbsp;&nbsp;&nbsp;&nbsp;/usr/local/apache/conf/httpd.conf <br/>rm /usr/local/apache/conf/httpd.conf.new<br/>修改配置文件：<br/><br/>全局控制，在httpd.conf加上以下几行： <br/><IfModule mod_limitipconn.c> <br/>&nbsp;&nbsp;&nbsp;&nbsp;<Location /> # 所有虚拟主机的/目录 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxConnPerIP 3 # 每IP只允许3个并发连接 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NoIPLimit image/* # 对图片不做IP限制 <br/>&nbsp;&nbsp;&nbsp;&nbsp;</Location> <br/>&nbsp;&nbsp;&nbsp;&nbsp;<Location /mp3> # 所有主机的/mp3目录 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxConnPerIP 1 # 每IP只允许一个连接请求 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件 <br/>&nbsp;&nbsp;&nbsp;&nbsp;</Location> <br/></IfModule><br/>局部限制，你也可以在虚拟主机的配置文件里设置IP限制，方法是完全一样： <br/><VirtualHost xx.xxx.xx.xx> <br/>&nbsp;&nbsp;&nbsp;&nbsp;ServerAdmin chenlf@chinalinuxpub.com <br/>&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot /home/my <br/>&nbsp;&nbsp;&nbsp;&nbsp;ServerName www.my.com <br/>&nbsp;&nbsp;&nbsp;&nbsp;<IfModule mod_limitipconn.c> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<Location /> # 所有虚拟主机的/目录 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxConnPerIP 5 # 每IP只允许3个并发连接 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NoIPLimit image/* # 对图片不做IP限制 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</Location> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<Location /mp3> # 所有主机的/mp3目录 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxConnPerIP 2 # 每IP只允许一个连接请求 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</Location> <br/>&nbsp;&nbsp;&nbsp;&nbsp;</IfModule> <br/>&nbsp;&nbsp;&nbsp;&nbsp;ErrorLog /home/my/logs/error_log <br/>&nbsp;&nbsp;&nbsp;&nbsp;CustomLog /home/my/logs/access_log common <br/></VirtualHost><br/>此外必须将 apache 的 ExtendedStatus 设置为ON。<br/>在httpd.conf找到 # ExtendedStatus On 去掉前面的注释即可。 <br/>好了，全部配置结束，重起apache就可以生效了。<br/>
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 在Apache下限制每个虚拟主机的并发数]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>