<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>【知行合一】-Poople&#039;s Blog &#187; Squid</title>
	<atom:link href="http://99dev.net/archives/tag/squid/feed" rel="self" type="application/rss+xml" />
	<link>http://99dev.net</link>
	<description>智巧终归庸俗，雄谋只余虚话</description>
	<lastBuildDate>Wed, 12 Oct 2011 01:19:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>[Original]Apache+Squid优化 加速高负荷Web访问</title>
		<link>http://99dev.net/archives/364</link>
		<comments>http://99dev.net/archives/364#comments</comments>
		<pubDate>Fri, 26 Dec 2008 05:24:49 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[系统架构]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Squid]]></category>

		<guid isPermaLink="false">http://99dev.net/?p=364</guid>
		<description><![CDATA[在实际环境中，元素丰富的页面产生的服务器负担不能小觑。几个月前配置的Apache最近终于撑不住了，在连接数达到1000的时候，页面访问已经相当迟缓，到了非优化不可的地步。
由于网站还提供在线音乐，怀疑是由于百度和迅雷的盗链影响，d4e上很多人都在反应迅雷对他们站点的影响很恶劣。 在Apache中启用防盗链（需要mod_rewrite支持 )
附上.htaccess配置文件
RewriteEngine  On
<span class="readmore"><a href="http://99dev.net/archives/364" title="[Original]Apache+Squid优化 加速高负荷Web访问" target="_blank">阅读全文——共5222字</a></span>]]></description>
			<content:encoded><![CDATA[<p><span style="line-height: 26px;"> 在实际环境中，元素丰富的页面产生的服务器负担不能小觑。几个月前配置的Apache最近终于撑不住了，在连接数达到1000的时候，页面访问已经相当迟缓，到了非优化不可的地步。</span></p>
<p>由于网站还提供在线音乐，怀疑是由于百度和迅雷的盗链影响，d4e上很多人都在反应迅雷对他们站点的影响很恶劣。<span id="more-364"></span> <strong>在Apache中启用防盗链（需要mod_rewrite支持 )</strong><br />
附上.htaccess配置文件</p>
<p>RewriteEngine  On<br />
RewriteCond %{HTTP_HOST} !([a-zA-Z]*.)?sends.cc$ [NC] [OR]<br />
RewriteCond %{HTTP_REFERER} !^http://([a-zA-Z]*.)?sends.cc/.*$ [NC]<br />
RewriteRule .(mp3|wav|flv|gif|jpg|wma)$ &#8211; [F]<br />
如上配置，在一定程度上缓解了服务器压力。Apache此时差不多可以顶1400个连接数，由此也引来一个问题，Apache子进程大量派生，Load average经常都上100（2×2核心，单个CPU此时的load大约在25左右（危急状态）。 Apache默认MaxRequestsPerChild为0，子进程在完成所有请求仍然不会退出，处于等候状态。在Apache2.conf中将其修改为适当的数字，我将其改成10000，子进程在处理完10000个Web请求之后自动退出，不再占用系统资源。<br />
<strong>对访问优化</strong><br />
因为页面中含有大量图片和音视频的多媒体文件，所以可以使用高速Web缓存在解决访问速度问题。Apache有自带的缓存代理模块，不过效率不高，实际生产中却是很少用。我使用的是开源软件中享有盛名的Squid，该软件既有代理和缓存的双重功能，这里我们只用其缓存功能。<br />
注：关于代理以及Squid的基本原理，<a href="http://home.arcor.de/jeffpang/squid/">http://home.arcor.de/jeffpang/squid/</a>上有详细的解释，这里不再累述。<br />
迄今，Squid的稳定版是squid-2.6.STABLE17，网上有各种归档文件，rpm和deb安装包都有，这里推荐源码包安装squid-2.6.STABLE17.tar.gz ，理由是可定制强，在实际应用中才能发挥最大功效。</p>
<p>configure很重要，这里提供我使用的参数给大家参考：<br />
&#8216;&#8211;with-maxfd=65535&#8242; &#8216;&#8211;prefix=/usr/local/squid/&#8217; &#8216;&#8211;disable-internal-dns&#8217; &#8216;&#8211;enable-async-io&#8217;<br />
&#8211;disable-internal-dns<br />
squid源代码包含两个不同的DNS解决方案，叫做“内部的”和“外部的”。内部查询是默认的，但某些人可能要使用外部技术。该选项禁止内部功能，转向使用旧的方式。</p>
<p>内部查询使用 squid自己的DNS协议执行工具。也就是说，squid产生未完成的DNS查询并且将它们发送到一个解析器。假如超时，它重新发送请求，你能指定任意数量的解析器。该工具的有利处之一是，squid获得准确无误的DNS响应的TTLs。</p>
<p>外部查询利用C库的gethostbyname()和gethostbyaddr()函数。squid使用一个外部进程池来制造并行查询。使用外部DNS解析的主要弊端是你需要更多的辅助进程，增加squid的负载。另一个麻烦是C库函数不在响应里传输TTLs，这样squid使用postive_dns_ttl指令提供的一个常量值。</p>
<p>请注意&#8211;enable-async-io是打开其他三个./configure选项的快捷方式，它等同于：<br />
&#8211;with-aufs-threads=N_THREADS</p>
<p>&#8211;with-pthreads</p>
<p>&#8211;enable-storeio=ufs,aufs</p>
<p>&#8211;with-pthreads<br />
该选项导致编译过程链接到你系统中的P线程库。aufs存储模块是squid中唯一需要使用线程的部分。通常来说，如果你使用&#8211;enable-saync-io选项，那么不必再单独指定该选项，因为它被自动激活了。#Very Important,事实证明该参数对Squid的效率有强悍的催化作用。异步I/O是squid技术之一，用以提升存储性能。aufs模块使用大量的线程来执行磁盘I/O操作。该代码仅仅工作在linux和solaris系统中。=N_THREADS参数改变squid使用的线程数量。<br />
make；make clean；make install<br />
无误的话，就可以正常启动Squid了<br />
squid -z #创建缓存区域<br />
squid start（如果没在/usr/bin里建立squid的软链接用/usr/local/squid/sbin/squid start启动）<br />
附上我的配置文件（squid.conf）<br />
visible_hostname a.server<br />
#&#8212;-端口设置&#8212;-<br />
http_port 192.168.0.1:80 vhost vport<br />
#xx.xx.xx.xx为这台服务器的IP地址<br />
icp_port 0</p>
<p>#&#8212;-缓存设置&#8212;-<br />
cache_mem 2000 MB<br />
#设置Squid所能使用的内存共2000MB，这个值因人而异<br />
cache_swap_low 90<br />
cache_swap_high 95<br />
maximum_object_size 4096 KB<br />
#最大缓存文件大小，超过这个值则不缓存，最好不要过大，10MB以内比较合适，过大严重影响性能<br />
maximum_object_size_in_memory 4096 KB<br />
cache_dir aufs /raid/cache_web 100000 16 256<br />
#磁盘缓存的类型和目录，大小，一二级目录的设置，这里磁盘缓存大小是20G</p>
<p>#&#8212;-日志设置&#8212;-<br />
cache_store_log none<br />
#这个设置是不记录store.log<br />
emulate_httpd_log on<br />
#打开emulate_httpd_log选项,将使Squid仿照Aapche的日志格式<br />
pid_filename /var/log/squid/squid.pid<br />
cache_log /var/log/squid/cache.log<br />
access_log /var/log/squid/access.log</p>
<p>#&#8212;-反向代理-完成高速WEB缓存功能<br />
cache_peer 192.168.0.1 parent 8080 0 no-query originserver<br />
cache_peer_domain 192.168.0.1 a.test.cc<br />
acl QUERY urlpath_regex .wmv .mp3 .flv<br />
cache deny QUERY</p>
<p>#&#8212;-访问控制列表&#8212;-<br />
acl all src 0.0.0.0/0.0.0.0<br />
#acl dst dstdomain .sends.cc<br />
#acl dst_other dst 0.0.0.0/0.0.0.0<br />
http_access allow all<br />
#http_access allow dst<br />
#http_access deny dst_other<br />
#&#8212;-启动用户组<br />
cache_effective_user proxy<br />
cache_effective_group proxy</p>
<p><strong>对用户访问进行限速（适用于低带宽或者容易堵塞的网络环境）</strong><br />
Apache的mod_bw提供了该功能，详细配置相对容易找到，请参看相关文档。<br />
下载最新版本<br />
root# wget <a href="http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz">http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz</a></p>
<p>解压<br />
root# wget <a href="http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz">http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz</a><br />
root# tar -vfxz mod_bw-0.7.tgz<br />
root# cd mod_bw-0.7</p>
<p>修改mod_bw 0.7的bug：<br />
由於mod_bw 0.7在编译时bug，会导致在安装后出现apr_atomic_add找不到的错误，所以要修改mod_bw.c<br />
将原本的：<br />
/* Compatibility for ARP &lt; 1 */<br />
#if (APR_MAJOR_VERSION &lt; 1)<br />
#define apr_atomic_inc32 apr_atomic_inc<br />
#define apr_atomic_dec32 apr_atomic_dec<br />
#define apr_atomic_add32 apr_atomic_add<br />
#define apr_atomic_cas32 apr_atomic_cas<br />
#define apr_atomic_set32 apr_atomic_set<br />
#endif</p>
<p>改成：<br />
/* Compatibility for ARP &lt; 1 */<br />
/*<br />
#if (APR_MAJOR_VERSION &lt; 1)<br />
#define apr_atomic_inc32 apr_atomic_inc<br />
#define apr_atomic_dec32 apr_atomic_dec<br />
#define apr_atomic_add32 apr_atomic_add<br />
#define apr_atomic_cas32 apr_atomic_cas<br />
#define apr_atomic_set32 apr_atomic_set<br />
#endif<br />
*/</p>
<p>更新Debian软件包：<br />
root# apt-get update</p>
<p>安装apxs2：<br />
root# apt-get install apache2-prefork-dev</p>
<p>安装gcc：<br />
root# apt-get install gcc</p>
<p>执行模组安装：<br />
root# apxs2 -i -a -c mod_bw.c</p>
<p>这时就会安装到你的Apache的模组里，并且http.conf也已经自动加上了：<br />
LoadModule bw_module modules/mod_bw.so</p>
<p>建立mod_bandwidth工作目录<br />
root# mkdir -p /tmp/apachebw/link<br />
root# mkdir -p /tmp/apachebw/master<br />
root# chown -R nobody:nobody /tmp/apachebw<br />
root# chmod -R 755 /tmp/apachebw</p>
<p>配置：</p>
<p>Options Includes FollowSymLinks MultiViews<br />
AllowOverride None<br />
order allow,deny<br />
allow from all</p>
<p># Limit BW usage<br />
BandWidthModule On<br />
ForceBandWidthModule On<br />
#開放20KB对外使用<br />
BandWidth all 51200<br />
#每Connection最小带宽为50K<br />
MinBandwidth all 51200<br />
#大于50M的文件传输速率按50Kbytes/sec<br />
#LargeFileLimit 51200 51200<br />
#最大同时连接数量<br />
#MaxConnection 300<br />
把Apache服务器重新启动就可以实现对带宽的限制了。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
apxs工具安装<br />
编译mod_encoding时，必须要有apxs，httpd-devel中包括创建和安装扩展模块的apxs工具。如果是你安装了Apache，检查${APACHE_HOME}/bin/下是否存在apxs，如果存在则略过该步无需自己安装该程序包，如果尚未安装e则需要自己手动安装httpd-devel<br />
<strong>友情提示</strong><br />
为防止站点资源被百度或者迅雷盗链，尽可能将你们的资源重新编码或者打包，有办法的话，还可以经常改变下载地址。<br />
另外如果你怀疑有Dos攻击的话，可以运行<br />
netstat -an | grep -i “服务器ip地址:80&#8243; | awk &#8216;{print $6}&#8217; | sort | uniq -c | sort -n<br />
这个命令会自动统计Tcp连接各个状态的数量，如果SYN_RECV很高的话，就不能排除有基于tcp协议的ddos攻击的可能<br />
这样的话，你需要打开tcp_syncookies<br />
echo 1 &gt;; /proc/sys/net/ipv4/tcp_syncookies<br />
如果没有 /proc/sys/net/ipv4/tcp_syncookies说明你的内核不支持syncookies，需要重新编译内核<br />
同时降低syn重试次数<br />
echo “1&#8243; &gt;; /proc/sys/net/ipv4/tcp_syn_retries<br />
echo “1&#8243; &gt;; /proc/sys/net/ipv4/tcp_synack_retries<br />
加大syn_backlog，以保证用户的访问（消耗内存为代价，设的太高。。）<br />
echo “2048&#8243; &gt;; /proc/sys/net/ipv4/tcp_max_syn_backlog<br />
如果还是不行，那么只能交给相应的硬件防火墙了</p>
<p>注：此配置目前可以撑到3000个同时在线连接。</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/364/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Original]Apache&amp;Squid优化 加速高负荷Web访问</title>
		<link>http://99dev.net/archives/204</link>
		<comments>http://99dev.net/archives/204#comments</comments>
		<pubDate>Wed, 01 Oct 2008 13:22:08 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[系统架构]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Squid]]></category>

		<guid isPermaLink="false">http://99dev.net/archives/204</guid>
		<description><![CDATA[Copyleft@华大桑梓-Poople，转载注明即可  

    在实际环境中，元素丰富的页面产生的服务器负担不能小觑。几个月前配置的Apache最近终于撑不住了，在连接数达到1000的时候，页面访问已经相当迟缓，到了非优化不可的地步。
    由于网站还提供在线音乐，怀疑是由于百度和迅雷的盗链影响，d4e上很多人都在反应迅雷对他们站点的影响很恶劣。
<span class="readmore"><a href="http://99dev.net/archives/204" title="[Original]Apache&#038;Squid优化 加速高负荷Web访问" target="_blank">阅读全文——共5311字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Copyleft@华大桑梓-Poople，转载注明即可  <a href="http://wiki.ubuntu.org.cn/images/b/b6/Copyright.png"></a></p>
<p><a href="http://wiki.ubuntu.org.cn/images/b/b6/Copyright.png"></a></p>
<p>    在实际环境中，元素丰富的页面产生的服务器负担不能小觑。几个月前配置的Apache最近终于撑不住了，在连接数达到1000的时候，页面访问已经相当迟缓，到了非优化不可的地步。</p>
<p>    由于网站还提供在线音乐，怀疑是由于百度和迅雷的盗链影响，d4e上很多人都在反应迅雷对他们站点的影响很恶劣。</p>
<p><span id="more-204"></span></p>
<ul>
<li>
<h5>在Apache中启用防盗链（需要mod_rewrite支持 )</h5>
</li>
</ul>
<p>附上.htaccess配置文件</p>
<blockquote><p>RewriteEngine  On<br />
RewriteCond %{HTTP_HOST} !([a-zA-Z]*.)?sends.cc$ [NC] [OR]<br />
RewriteCond %{HTTP_REFERER} !^http://([a-zA-Z]*.)?sends.cc/.*$ [NC]<br />
RewriteRule .(mp3|wav|flv|gif|jpg|wma)$ &#8211; [F]</p></blockquote>
<p>    如上配置，在一定程度上缓解了服务器压力。Apache此时差不多可以顶1400个连接数，由此也引来一个问题，Apache子进程大量派生，Load average经常都上100（2×2核心，单个CPU此时的load大约在25左右（危急状态）。 Apache默认MaxRequestsPerChild为0，子进程在完成所有请求仍然不会退出，处于等候状态。在Apache2.conf中将其修改为适当的数字，我将其改成10000，子进程在处理完10000个Web请求之后自动退出，不再占用系统资源。</p>
<ul>
<li>
<h5>对访问优化</h5>
</li>
</ul>
<p>     因为页面中含有大量图片和音视频的多媒体文件，所以可以使用高速Web缓存在解决访问速度问题。Apache有自带的缓存代理模块，不过效率不高，实际生产中却是很少用。我使用的是开源软件中享有盛名的Squid，该软件既有代理和缓存的双重功能，这里我们只用其缓存功能。</p>
<p>     注：关于代理以及Squid的基本原理，<a href="http://home.arcor.de/jeffpang/squid/">http://home.arcor.de/jeffpang/squid/</a>上有详细的解释，这里不再累述。</p>
<p>     迄今，Squid的稳定版是squid-2.6.STABLE17，网上有各种归档文件，rpm和deb安装包都有，这里推荐源码包安装squid-2.6.STABLE17.tar.gz ，理由是可定制强，在实际应用中才能发挥最大功效。</p>
<p>configure很重要，这里提供我使用的参数给大家参考：</p>
<blockquote><p>&#8216;&#8211;with-maxfd=65535&#8242; &#8216;&#8211;prefix=/usr/local/squid/&#8217; &#8216;&#8211;disable-internal-dns&#8217; &#8216;&#8211;enable-async-io&#8217;</p>
<blockquote><p>&#8211;disable-internal-dns</p>
<p>squid源代码包含两个不同的DNS解决方案，叫做“内部的”和“外部的”。内部查询是默认的，但某些人可能要使用外部技术。该选项禁止内部功能，转向使用旧的方式。</p>
<p>内部查询使用 squid自己的DNS协议执行工具。也就是说，squid产生未完成的DNS查询并且将它们发送到一个解析器。假如超时，它重新发送请求，你能指定任意数量的解析器。该工具的有利处之一是，squid获得准确无误的DNS响应的TTLs。</p>
<p>外部查询利用C库的gethostbyname()和gethostbyaddr()函数。squid使用一个外部进程池来制造并行查询。使用外部DNS解析的主要弊端是你需要更多的辅助进程，增加squid的负载。另一个麻烦是C库函数不在响应里传输TTLs，这样squid使用postive_dns_ttl指令提供的一个常量值。</p>
<p>请注意&#8211;enable-async-io是打开其他三个./configure选项的快捷方式，它等同于：</p>
<p>&#8211;with-aufs-threads=N_THREADS<br />
&#8211;with-pthreads<br />
&#8211;enable-storeio=ufs,aufs<br />
&#8211;with-pthreads</p>
<p>该选项导致编译过程链接到你系统中的P线程库。aufs存储模块是squid中唯一需要使用线程的部分。通常来说，如果你使用&#8211;enable-saync-io选项，那么不必再单独指定该选项，因为它被自动激活了。#Very Important,事实证明该参数对Squid的效率有强悍的催化作用。异步I/O是squid技术之一，用以提升存储性能。aufs模块使用大量的线程来执行磁盘I/O操作。该代码仅仅工作在linux和solaris系统中。=N_THREADS参数改变squid使用的线程数量。</p></blockquote>
</blockquote>
<p>     make；make clean；make install</p>
<p>     无误的话，就可以正常启动Squid了</p>
<p>     squid -z #创建缓存区域</p>
<p>     squid start（如果没在/usr/bin里建立squid的软链接，就使用/usr/local/squid/sbin/squid start启动）</p>
<p>附上我的配置文件</p>
<blockquote><p>visible_hostname a.server<br />
#&#8212;-端口设置&#8212;-<br />
http_port 192.168.0.1:80 vhost vport<br />
#xx.xx.xx.xx为这台服务器的IP地址<br />
icp_port 0</p>
<p>#&#8212;-缓存设置&#8212;-<br />
cache_mem 2000 MB<br />
#设置Squid所能使用的内存共2000MB，这个值因人而异<br />
cache_swap_low 90<br />
cache_swap_high 95<br />
maximum_object_size 4096 KB</p>
<p>#最大缓存文件大小，超过这个值则不缓存，最好不要过大，10MB以内比较合适，过大严重影响性能<br />
maximum_object_size_in_memory 4096 KB<br />
cache_dir aufs /raid/cache_web 100000 16 256<br />
#磁盘缓存的类型和目录，大小，一二级目录的设置，这里磁盘缓存大小是20G</p>
<p>#&#8212;-日志设置&#8212;-<br />
cache_store_log none<br />
#这个设置是不记录store.log<br />
emulate_httpd_log on<br />
#打开emulate_httpd_log选项,将使Squid仿照Aapche的日志格式<br />
pid_filename /var/log/squid/squid.pid<br />
cache_log /var/log/squid/cache.log<br />
access_log /var/log/squid/access.log</p>
<p>#&#8212;-反向代理-完成高速WEB缓存功能<br />
cache_peer 192.168.0.1 parent 8080 0 no-query originserver<br />
cache_peer_domain 192.168.0.1 a.test.cc<br />
acl QUERY urlpath_regex .wmv .mp3 .flv<br />
cache deny QUERY</p>
<p>#&#8212;-访问控制列表&#8212;-<br />
acl all src 0.0.0.0/0.0.0.0<br />
#acl dst dstdomain .sends.cc<br />
#acl dst_other dst 0.0.0.0/0.0.0.0<br />
http_access allow all<br />
#http_access allow dst<br />
#http_access deny dst_other</p>
<p>#&#8212;-启动用户组</p>
<p>cache_effective_user proxy<br />
cache_effective_group proxy</p></blockquote>
<ul>
<li>
<h5>对用户访问进行限速（适用于低带宽或者容易堵塞的网络环境）</h5>
</li>
</ul>
<p>     Apache的mod_bw提供了该功能，详细配置相对容易找到，请参看相关文档。</p>
<blockquote><p>下载最新版本<br />
root# wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz</p>
<p>解压<br />
root# wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz<br />
root# tar -vfxz mod_bw-0.7.tgz<br />
root# cd mod_bw-0.7</p>
<p>修改mod_bw 0.7的bug：<br />
由於mod_bw 0.7在编译时bug，会导致在安装后出现apr_atomic_add找不到的错误，所以要修改mod_bw.c</p>
<p>将原本的：</p>
<p>/* Compatibility for ARP &lt; 1 */<br />
#if (APR_MAJOR_VERSION &lt; 1)<br />
#define apr_atomic_inc32 apr_atomic_inc<br />
#define apr_atomic_dec32 apr_atomic_dec<br />
#define apr_atomic_add32 apr_atomic_add<br />
#define apr_atomic_cas32 apr_atomic_cas<br />
#define apr_atomic_set32 apr_atomic_set<br />
#endif</p>
<p>改成：</p>
<p>/* Compatibility for ARP &lt; 1 */<br />
/*<br />
#if (APR_MAJOR_VERSION &lt; 1)<br />
#define apr_atomic_inc32 apr_atomic_inc<br />
#define apr_atomic_dec32 apr_atomic_dec<br />
#define apr_atomic_add32 apr_atomic_add<br />
#define apr_atomic_cas32 apr_atomic_cas<br />
#define apr_atomic_set32 apr_atomic_set<br />
#endif<br />
*/</p>
<p>更新Debian软件包：<br />
root# apt-get update</p>
<p>安装apxs2：<br />
root# apt-get install apache2-prefork-dev</p>
<p>安装gcc：<br />
root# apt-get install gcc</p>
<p>执行模组安装：<br />
root# apxs2 -i -a -c mod_bw.c</p>
<p>这时就会安装到你的Apache的模组里，并且http.conf也已经自动加上了：<br />
LoadModule bw_module modules/mod_bw.so</p>
<p>建立mod_bandwidth工作目录<br />
root# mkdir -p /tmp/apachebw/link<br />
root# mkdir -p /tmp/apachebw/master<br />
root# chown -R nobody:nobody /tmp/apachebw<br />
root# chmod -R 755 /tmp/apachebw</p>
<p>配置：<br />
Options Includes FollowSymLinks MultiViews<br />
AllowOverride None<br />
order allow,deny<br />
allow from all<br />
# Limit BW usage<br />
BandWidthModule On<br />
ForceBandWidthModule On<br />
#開放20KB对外使用<br />
BandWidth all 51200<br />
#每Connection最小带宽为50K<br />
MinBandwidth all 51200<br />
#大于50M的文件传输速率按50Kbytes/sec<br />
#LargeFileLimit 51200 51200<br />
#最大同时连接数量<br />
#MaxConnection 300</p>
<p>把Apache服务器重新启动就可以实现对带宽的限制了。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><strong>apxs</strong><strong>工具安装</strong><br />
编译mod_encoding时，必须要有apxs，httpd-devel中包括创建和安装扩展模块的apxs工具。如果是你安装了Apache，检查${APACHE_HOME}/bin/下是否存在apxs，如果存在则略过该步无需自己安装该程序包，如果尚未安装e则需要自己手动安装httpd-devel</p></blockquote>
<ul>
<li>
<h5>友情提示</h5>
</li>
</ul>
<p>     为防止站点资源被百度或者迅雷盗链，尽可能将你们的资源重新编码或者打包，有办法的话，还可以经常改变下载地址。</p>
<p>     另外如果你怀疑有Dos攻击的话，可以运行<br />
     netstat -an | grep -i “服务器ip地址:80&#8243; | awk &#8216;{print $6}&#8217; | sort | uniq -c | sort -n <br />
     这个命令会自动统计Tcp连接各个状态的数量，如果SYN_RECV很高的话，就不能排除有基于tcp协议的ddos攻击的可能<br />
     这样的话，你需要打开tcp_syncookies <br />
     echo 1 &gt;; /proc/sys/net/ipv4/tcp_syncookies<br />
     如果没有 /proc/sys/net/ipv4/tcp_syncookies说明你的内核不支持syncookies，需要重新编译内核<br />
     同时降低syn重试次数<br />
     echo “1&#8243; &gt;; /proc/sys/net/ipv4/tcp_syn_retries<br />
     echo “1&#8243; &gt;; /proc/sys/net/ipv4/tcp_synack_retries<br />
     加大syn_backlog，以保证用户的访问（消耗内存为代价，设的太高。。）<br />
     echo “2048&#8243; &gt;; /proc/sys/net/ipv4/tcp_max_syn_backlog<br />
     如果还是不行，那么只能交给相应的硬件防火墙了</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/204/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

