<?xml version="1.0" encoding="UTF-8"?>
<rss>
<channel>
<title>胭脂熊BLOG</title>
<link>http://blog.newhi.net</link>
<Description>胭脂熊BLOG</Description>
<language>zh-cn</language>
<copyright>Copyright 2003-2004 Loveyuki</copyright>
<webMaster>webmaster@loveyuki.com</webMaster>
<image>
	<title>胭脂熊BLOG</title> 
	<url>http://blog.newhi.net/images/logos.gif</url> 
	<link>http://blog.newhi.net</link> 
	<description>胭脂熊BLOG</description> 
</image>
<item><link>http://blog.newhi.net/blogview.asp?logID=168</link><title><![CDATA[TCP UDP 类型端口 连接测试]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-11-29 11:38:35</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=168</guid><description><![CDATA[<p id=fp>用法如下<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_7643')})</script><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td><td align="right"><a href="javascript:CopyText(document.all.CODE_7643);">[ 复制代码到剪贴板 ]</a> </td></tr></table><div class="code_main" id="CODE_7643" style="overflow-y:auto;overflow-x:hidden;height:150px;">C:\&gt;portmonitor<br>╋━—━—━━╋<br>┃QQ&nbsp;1752932┃<br>╋━—━—━━╋<br>Usage:&nbsp;PortMonitor&nbsp;ServerIP&nbsp;PortNumber&nbsp;protocol<br>example:&nbsp;PortMonitor&nbsp;www.newhi.net&nbsp;80&nbsp;tcp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PortMonitor&nbsp;dns1.highten.com.cn&nbsp;&nbsp;53&nbsp;udp</div><br><br><img src="images/download.gif" align="absmiddle" /> <a href="attachments/month_0711/liap_PortMonitor.rar" target="_blank">点击下载此文件</a></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=167</link><title><![CDATA[七十年代的尴尬!!!]]></title><author>liuqi</author><category>博客生活</category><pubDate>2007-8-20 19:58:07</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=167</guid><description><![CDATA[<p id=fp><br>&nbsp;尴尬一：好不容易考上大学，却发现不仅国家不包分配，而且连本科文凭都不值钱了。&nbsp;&nbsp;<br><br>　　尴尬二：千辛万苦进了党政机关企事业单位，正赶上人家下岗，新人又怎么了！&nbsp;&nbsp;<br><br>　　尴尬三：97年，全国取消福利分房，那个时候七十年代出生的人刚刚参加工作。&nbsp;&nbsp;<br><br>　　尴尬四：小时候教育要做个诚实的孩子，成年后却不得不抽假烟、喝假酒、说假话，上了拿假文凭人的当，在假发票上签了字，最糟心的是，看场足球，都是假球。&nbsp;&nbsp;<br><br>　　尴尬五：计划经济的教育绝对抹杀个性，谁要和别人不一样，不仅老师不答应，同学也不放过。然而时过境迁，社会却需要有个性的青年一代，素质教育嘛！&nbsp;&nbsp;<br><br>　　尴尬六：一看到现在的高考心里就堵得慌，又是警察开道又是休息室伺候，真是今非昔比！此外，当年无人过问的成长的烦恼，如今成为正儿八经的事放在学生的身上，而那时严加制止的早恋追星，现在也很宽容地&quot;正确引导&quot;了。&nbsp;&nbsp;<br><br>　　尴尬七：美好的生活属于谁呢？二十年前，“属于我，属于你，属于八十年代的新一辈”，二十年后，1980S初生牛不怕虎，谁都没把七十年出生的人放在眼里。&nbsp;&nbsp;<br><br>　　尴尬八：七十年代出生的人在六十年代人眼里是叛逆的一代，而在八十年人眼里，他们和四五六十年代人一样，统统落伍。&nbsp;&nbsp;<br><br>　　尴尬九：出生在一个讲理想的年代，却不得不生活在一个重现实的年代，是这一代人最大的尴尬。&nbsp;&nbsp;<br><br>　　生于七十年代，是最后一拨这样的人：&nbsp;&nbsp;<br><br>　　是最后一拨对这样一句话耳熟能详的人－－“为革命－－保护视力，眼保健操开始……”；&nbsp;&nbsp;<br><br>　　是最后一拨男女生明明互有好感，却故作嫌恶状，在课桌上刻三八线的人；&nbsp;&nbsp;<br><br>　　是最后一拨在小时候写作文时，言必称－－“自十一届三中全会以来……”或“改革的春风……”之类的人；&nbsp;&nbsp;<br><br>　　是最后一拨学校开会一冷场有事没事就开唱“没有花香,没有树高”&nbsp;&nbsp;<br><br>　　是最后一拨这样的女孩子－－春风越吹越暖，明明早就心痒难搔，却硬着头皮按兵不动，互相观望，最后都快放暑假了，实在熬不住了，才约好第二天同时穿裙子，谁说话不算数谁是小狗；&nbsp;&nbsp;<br><br>　　是最后一拨在接受计算机启蒙教育时，还见识过BASIC语言的人；&nbsp;&nbsp;<br><br>　　是最后一拨有过小时候要到别人家看电视，死活赖着不肯回家，被爸妈打的经验的人；&nbsp;&nbsp;<br><br>　　是最后一拨过六一节还必须找齐了白衬衫、蓝长裤的人；&nbsp;&nbsp;<br><br>　　是最后一拨和泥巴、过家家、弹弹子、拍画片，背着军用水壶，揣着茶叶蛋春游的人；&nbsp;&nbsp;<br><br>　　是最后一拨在小学劳动课上还去打扫厕所、捉苍蝇老鼠的人；&nbsp;&nbsp;<br><br>　　是最后一拨对五讲四美三热爱倒背如流，但始终也没搞清楚什么时候才能练成四有新人的人；&nbsp;&nbsp;<br><br>　　是最后一拨告诉自己，要有理想有信念，要好好学习天天向上，走在路上看见方格子地砖想着跳房子，跳橡皮筋的时候唱&quot;我爱北京天安门，每个月存5元指望小学毕业去看天安门的人；&nbsp;&nbsp;<br><br>　　是最后一拨看过黑白小人书《岳飞》，《丁丁历险记》，《烈火金刚》，《七剑下天山》的人；&nbsp;&nbsp;<br><br>　　是最后一拨享受过最纯最动人的日本动画片，到八十岁仍能张口就来一段铁臂阿童木》主题歌，到九十岁仍记得《森林大帝》里的小狮子LEO、花仙子和李嘉文、咪咪、来福、娜娜小姐、蓝精灵和格格巫、龙子太郎、一休和小叶子、新佑卫门，自认为曾看到过最好的动画片的人；&nbsp;&nbsp;<br><br>　　也是最后一拨享受过品质最佳的国产动画片的人－－《九色鹿》我们看一回感动一回，《天书奇谭》让我们第一次明白了狐狸精是什么东东、《大闹天宫》让我们初具审美情趣，《没头脑和不高兴》寓教于乐，《大林和小林》够曲折，《哪吒闹海》豪气冲天。&nbsp;&nbsp;<br><br>　　是最后一拨当年在看了《排球女将》后，逢中日排球赛就紧张万分，生怕日本队真练成了睛空霹雳、流星赶月，抢走中国女排的五连冠的人；&nbsp;&nbsp;<br><br>　　是最后一拨看全了山口百慧的《血疑》系列，天天查看自己手臂上有无红点、担心自己也得白血病的人；（呀，怎么尽是日货，不好意思，不过，当年的哈日族可真比现下的心境纯明多了。）&nbsp;&nbsp;<br><br>　　是最后一拨有幸目睹过香港无线的诸多武侠剧的人－－当时是小学的年纪吧，再小一点的就看不懂了。看《射雕》里的翁美玲让我们把早逝的她奉若神明，《绝代双骄》又让我们成了梁朝伟的终身影迷。那个时期的金剧和古剧前无古人、后无来者。&nbsp;&nbsp;<br><br>　　是最后一拨还曾为费翔意乱情迷，深深同情他白白地担了大兴安岭火灾罪责的现在还算是年轻人的人；&nbsp;&nbsp;<br><br>　　是最后一拨在中学毕业时都要含着眼泪唱小虎队的《骊歌》中的&quot;南风又?轻地吹送，相聚的光阴匆匆……&quot;和《再见》中的&gt;请相信我们明天一定会再见，就像白云离不开蓝天……&quot;的人。&nbsp;&nbsp;<br><br>　　22岁的时候，你毕业了，你第一份工作的薪水是1500块，转正以后变成2000块。工资总花得一分钱不剩，盼着发薪的日子。过了一年你跳槽了，工资变成3000块，你穿的衣服开始变贵了，吃的东西开始变好了，不过有一样没有变，工资还是花得一分钱不剩。这时候你谈恋爱了，你为了交女朋友，一个月要向朋友借1000块，她还是嫌你钱少，把你揣了。好不容易找个邻家女孩，感情甚好，学会了生活，一个月居然能存1000块，没想到在你憧憬未来的时候，她家里人不同意，把你们拆了。于是你发奋图强，终于工资涨到了6000块，变成白领，开始泡酒吧，追美女，给人家100块的小费。某一天，在街上碰见甩你的前女友，很奇怪自己当初怎么会看上她，她是那么的没品味。&nbsp;&nbsp;<br><br>　　30岁的时候，你有了10万块存款，不过你觉得很疲惫，想找个地方，可以踏实地睡。于是你结婚了，存款变成了贷款，每月还要还上4000块，不过你和妻子的工资加起来有1万块，你一点都不觉得累。一晃几年过去，你还清了贷款还存了5万块，你的孩子也长到六岁，你不希望他重复你的生活，于是想送他到外国，可是人家一张嘴就是20万，你心里暗骂&quot;这帮黑心的老外&quot;。愿望虽好，没钱也是白费，你的孩子还是在国内，一直长到22岁。&nbsp;&nbsp;<br><br>　　60岁的时候，你退休了，儿子要结婚，向你要了40万块，你没嫌多，反到觉得花在自己儿子身上，比送给老外实在。过了一年又一年，你对数字不再敏感除了自己的年龄。有时候你躺在床上还在想，我怎么还这么结实，是因为我补了钙还是上帝希望我健在。&nbsp;&nbsp;<br><br>　　终于你安息了，墓碑上刻着你生活的年代197X--205X。&nbsp;&nbsp;<br><br>偶也是七十年代的人&nbsp;我们不是被遗忘的一代&nbsp;欢迎七十年代的朋友来&nbsp;七十年代群&nbsp;探讨生活&nbsp;探讨美好的明天....&nbsp;&nbsp;&nbsp;<br>&nbsp;<br></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=166</link><title><![CDATA[用SYBIAN智能手机远程管理服务器]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-8-20 13:22:48</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=166</guid><description><![CDATA[<p id=fp>ssh&nbsp;远程管理&nbsp;（LINUX&nbsp;UNIX）<br>midpssh-full.jar<br><br>远程桌面&nbsp;（WINDOWS）<br>Shape.Services.TsMobiles.jar<br><br>因为都是java的小程序，所以我放在一个压缩包里，我现在就用这个两个小软件管理服务器，还不错！<br><br><br><img src="images/download.gif" align="absmiddle" /> <a href="attachments/month_0708/a8ze_WIN_UNIX.rar" target="_blank">点击下载此文件</a></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=165</link><title><![CDATA[建立MSSQL数据库脚本 （建库脚本）]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-8-10 13:57:37</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=165</guid><description><![CDATA[<p id=fp>SQLSERVER&nbsp;建库脚本<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_6266')})</script><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td><td align="right"><a href="javascript:CopyText(document.all.CODE_6266);">[ 复制代码到剪贴板 ]</a> </td></tr></table><div class="code_main" id="CODE_6266" style="overflow-y:auto;overflow-x:hidden;height:150px;">:start<br>@ECHO&nbsp;off<br><br>rem&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;<br>rem&nbsp;&nbsp;请在使用和转载时保留作者信息<br>rem&nbsp;&nbsp;MKSQL.BAT<br>rem<br>rem&nbsp;&nbsp;Date:&nbsp;&nbsp;&nbsp;7/6/2007<br>rem&nbsp;&nbsp;Company&nbsp;Newhi<br>rem&nbsp;&nbsp;www.newhi.net<br>rem&nbsp;&nbsp;Email&nbsp;liuqi@newhi.net<br>rem&nbsp;&nbsp;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;<br><br><br>title&nbsp;MSSQL建库程序<br>@mode&nbsp;con&nbsp;cols=40&nbsp;lines=10<br>color&nbsp;1e<br><br><br>set&nbsp;/p&nbsp;mssqlid=&quot;请输入登陆名:&quot;&nbsp;<br>cls<br><br>if&nbsp;exist&nbsp;&nbsp;D:\mssqldata\%mssqlid%_db_Data.MDF&nbsp;goto&nbsp;end<br>echo&nbsp;你输入的登陆名是&nbsp;%mssqlid%<br>set&nbsp;/p&nbsp;mssqlpw=&quot;请输入数据库密码:&quot;&nbsp;<br>cls<br><br>set&nbsp;/p&nbsp;datamaxsize=&quot;请输入数据大小/MB:&quot;<br>set&nbsp;/a&nbsp;datamax=%datamaxsize%*1024<br><br>cls&nbsp;<br><br>echo&nbsp;CREATE&nbsp;DATABASE&nbsp;%mssqlid%_db&nbsp;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;ON&nbsp;&nbsp;PRIMARY&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;(&nbsp;NAME=&#39;%mssqlid%_db_Data&#39;,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;FILENAME=&#39;D:\mssqldata\%mssqlid%_db_Data.MDF&#39;,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;SIZE=1024KB,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;MAXSIZE=%datamax%KB,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;FILEGROWTH=10%%)&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br><br>echo&nbsp;LOG&nbsp;ON&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;(&nbsp;NAME=&#39;%mssqlid%_db_Log&#39;,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;FILENAME=&#39;D:\mssqldata\%mssqlid%_db_Log.LDF&#39;,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;SIZE=1024KB,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;MAXSIZE&nbsp;=&nbsp;5120KB,&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;FILEGROWTH&nbsp;=&nbsp;1024KB&nbsp;)&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;GO&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br><br>echo&nbsp;exec&nbsp;sp_addlogin&nbsp;&#39;%mssqlid%&#39;,&#39;%mssqlpw%&#39;,&#39;%mssqlid%_db&#39;&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;use&nbsp;%mssqlid%_db&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;GO&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;exec&nbsp;sp_grantdbaccess&nbsp;&#39;%mssqlid%&#39;,&#39;%mssqlid%&#39;&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br>echo&nbsp;exec&nbsp;sp_addrolemember&nbsp;&#39;db_owner&#39;,&#39;%mssqlid%&#39;&nbsp;&gt;&gt;&nbsp;%mssqlid%_db.sql<br><br>osql&nbsp;-U&nbsp;sa&nbsp;-P&nbsp;sa密码&nbsp;-i&nbsp;%mssqlid%_db.sql<br>del&nbsp;%mssqlid%_db.sql&nbsp;/q<br><br>cls<br>echo&nbsp;&nbsp;┏─────────────┓<br>echo&nbsp;&nbsp;│&nbsp;▉▉▉▉▉▉&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%%│<br>echo&nbsp;&nbsp;┗─────────────┛<br>ping&nbsp;-n&nbsp;2&nbsp;127.1&gt;nul<br>cls<br>echo&nbsp;&nbsp;┏─────────────┓<br>echo&nbsp;&nbsp;│&nbsp;▉▉▉▉▉▉▉▉▉▉&nbsp;100%%│<br>echo&nbsp;&nbsp;┗─────────────┛<br>ping&nbsp;-n&nbsp;2&nbsp;127.1&gt;nul<br>cls<br><br>echo&nbsp;%mysqlid%&nbsp;用户数据库%mysqlid%建立成功！<br>echo&nbsp;你输入的登陆名是&nbsp;%mssqlid%<br>echo&nbsp;你输入的密码是&nbsp;%mssqlid%<br>echo&nbsp;数据库大小是&nbsp;%datamax%/KB<br>ping&nbsp;-n&nbsp;5&nbsp;127.0.0.1&gt;nul<br><br><br>:end<br>echo&nbsp;%mysqlid%&nbsp;已存在&nbsp;请核实后输入!<br>ping&nbsp;-n&nbsp;5&nbsp;127.0.0.1&gt;nul<br>goto&nbsp;start<br>:over</div></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=164</link><title><![CDATA[网络流量 曲线图]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-7-11 15:16:00</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=164</guid><description><![CDATA[<p id=fp>声明&nbsp;在转本站贴时请不要删除版权信息！<br><br>简单的网络流量曲线图！<br>获取流量脚本和算法<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_6635')})</script><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td><td align="right"><a href="javascript:CopyText(document.all.CODE_6635);">[ 复制代码到剪贴板 ]</a> </td></tr></table><div class="code_main" id="CODE_6635" style="overflow-y:auto;overflow-x:hidden;height:150px;">@echo&nbsp;off<br>rem&nbsp;<a target="_blank" href="http://www.newhi.net&nbsp;">http://www.newhi.net&nbsp;</a>胭脂熊BLOG<br>:begin<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;udate&nbsp;-d&nbsp;&quot;+0&nbsp;days&nbsp;ago&quot;&nbsp;+%%H:%%M:%%S&#39;)&nbsp;do&nbsp;set&nbsp;logdate=%%i<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$2}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;lanout=%%i<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$3}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;lanin=%%i<br>sleep&nbsp;1m<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$2}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;lanout1=%%i<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$3}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;lanin1=%%i<br><br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;expr&nbsp;%lanout1%&nbsp;-&nbsp;%lanout%&nbsp;&#39;)&nbsp;do&nbsp;set&nbsp;&nbsp;yunsuan1=%%i<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;expr&nbsp;%lanin1%&nbsp;-&nbsp;%lanin%&nbsp;&nbsp;&#39;)&nbsp;do&nbsp;set&nbsp;yunsuan2=%%i<br><br><br>set&nbsp;/a&nbsp;takeout=%yunsuan1%/1024/60*8<br>set&nbsp;/a&nbsp;takein=%yunsuan2%/1024/60*8<br><br>echo&nbsp;%takeout%&nbsp;&gt;&gt;&nbsp;IN.TXT<br>echo&nbsp;%takein%&nbsp;&gt;&gt;&nbsp;OUT.TXT<br><br>tail&nbsp;-60&nbsp;in.txt&nbsp;|&nbsp;xargs&nbsp;|sed&nbsp;&#39;s/&nbsp;/,/g&nbsp;&gt;&nbsp;inok.txt<br>tail&nbsp;-60&nbsp;out.txt&nbsp;|&nbsp;xargs&nbsp;|sed&nbsp;&#39;s/&nbsp;/,/g&nbsp;&gt;&nbsp;outok.txt<br><br>set&nbsp;/p&nbsp;insent=&lt;inok.txt<br>set&nbsp;/p&nbsp;outsent=&lt;outok.txt<br>echo&nbsp;%logdate%<br>echo&nbsp;%insent%<br>echo&nbsp;%outsent%<br>cat&nbsp;aspll.mb.asp&nbsp;|sed&nbsp;&#39;s/insent/%insent%/g&#39;|&nbsp;sed&nbsp;&#39;s/outsent/%outsent%/g&#39;&nbsp;|&nbsp;sed&nbsp;&#39;s/logdate/%logdate%/g&#39;&nbsp;&gt;&nbsp;tcpiplist.asp&nbsp;<br><br>:end<br>goto&nbsp;begin</div><br><br><br>WEB&nbsp;监控界面<br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_4316')})</script><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td><td align="right"><a href="javascript:CopyText(document.all.CODE_4316);">[ 复制代码到剪贴板 ]</a> </td></tr></table><div class="code_main" id="CODE_4316" style="overflow-y:auto;overflow-x:hidden;height:150px;">&lt;%<br>&#39;<a target="_blank" href="http://www.newhi.net&nbsp;">http://www.newhi.net&nbsp;</a>胭脂熊BLOG<br>&#39;参数含义(数组，横坐标，纵坐标，图表的宽度，图表的高度,图表标题，X轴单位，Y轴单位)<br>function&nbsp;table1(stat_array,table_left,table_top,all_width,all_height,table_title,X_unit,Y_unit)<br>dim&nbsp;bg_color(10)<br>bg_color(1)=&quot;#ff1919&quot;<br>bg_color(2)=&quot;#ffff19&quot;<br>bg_color(3)=&quot;#1919ff&quot;<br>bg_color(4)=&quot;#19ff19&quot;<br>bg_color(5)=&quot;#fc0&quot;<br>bg_color(6)=&quot;#3cc&quot;<br>bg_color(7)=&quot;#ff19ff&quot;<br>bg_color(8)=&quot;#993300&quot;<br>bg_color(9)=&quot;#f60&quot;<br>bg_color(10)=&quot;#ff8c19&quot;<br><br>if&nbsp;X_unit&nbsp;&lt;&gt;&nbsp;&quot;&quot;&nbsp;then<br>X_unit&nbsp;=&nbsp;X_unit<br>end&nbsp;if<br>if&nbsp;Y_unit&nbsp;&lt;&gt;&nbsp;&quot;&quot;&nbsp;then<br>Y_unit&nbsp;=&nbsp;Y_unit<br>end&nbsp;if<br><br>num1&nbsp;=&nbsp;ubound(stat_array,1)<br>line_temp=split(stat_array(0,1),&quot;,&quot;)<br>num2&nbsp;=&nbsp;ubound(line_temp,1)+1<br>dim&nbsp;line_code<br>redim&nbsp;line_code(num1,num2)<br>for&nbsp;j=1&nbsp;to&nbsp;num2<br>line_code(0,j)&nbsp;=&nbsp;line_temp(j-1)<br>next<br>for&nbsp;i=1&nbsp;to&nbsp;num1<br>line_temp&nbsp;=&nbsp;split(stat_array(i,1),&quot;,&quot;)<br>line_code(i,0)&nbsp;=&nbsp;stat_array(i,2)<br>for&nbsp;j=1&nbsp;to&nbsp;num2<br>line_code(i,j)&nbsp;=&nbsp;clng(line_temp(j-1))<br>next<br>next&nbsp;<br>value_Max=0<br>for&nbsp;i=1&nbsp;to&nbsp;num1<br>for&nbsp;j=1&nbsp;to&nbsp;num2<br>if&nbsp;value_Max&lt;line_code(i,j)&nbsp;then&nbsp;value_Max=line_code(i,j)&nbsp;<br>next<br>next<br><br>value_Max&nbsp;=&nbsp;clng(value_Max)<br>value_Max_str&nbsp;=cstr(value_Max)<br>if&nbsp;value_Max&gt;9&nbsp;then<br>temp=mid(value_Max_str,2,1)<br>if&nbsp;temp&gt;4&nbsp;then&nbsp;<br>temp2=(int(value_Max/(10^(len(value_Max_str)-1)))+1)*10^(len(value_Max_str)-1)<br>else<br>temp2=(int(value_Max/(10^(len(value_Max_str)-1)))+0.5)*10^(len(value_Max_str)-1)<br>end&nbsp;if<br>else<br>if&nbsp;value_Max&gt;4&nbsp;then&nbsp;temp2=10&nbsp;else&nbsp;temp2=5<br>end&nbsp;if<br>item_hight&nbsp;=&nbsp;temp2/5<br><br>item_width&nbsp;=&nbsp;20000/(num2-1)<br><br>response.Write&nbsp;&quot;&lt;v:rect&nbsp;id=&#39;background&#39;&nbsp;style=&#39;position:absolute;left:&quot;&amp;table_left&amp;&quot;px;top:&quot;&amp;table_top&amp;&quot;px;WIDTH:&quot;&amp;all_width&amp;&quot;px;HEIGHT:&quot;&amp;all_height&amp;&quot;px;&#39;&nbsp;fillcolor=&#39;#EFEFEF&#39;&nbsp;strokecolor=&#39;gray&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:shadow&nbsp;on=&#39;t&#39;&nbsp;type=&#39;single&#39;&nbsp;color=&#39;silver&#39;&nbsp;offset=&#39;4pt,4pt&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&lt;/v:rect&gt;&quot;<br><br>response.Write&nbsp;&quot;&lt;v:group&nbsp;ID=&#39;table&#39;&nbsp;style=&#39;position:absolute;left:&quot;&amp;table_left&amp;&quot;px;top:&quot;&amp;table_top&amp;&quot;px;WIDTH:&quot;&amp;all_width&amp;&quot;px;HEIGHT:&quot;&amp;all_height&amp;&quot;px;&#39;&nbsp;coordsize&nbsp;=&nbsp;&#39;27500,12800&#39;&gt;&quot;<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:1500;top:200;width:23000;height:800&#39;filled=&#39;false&#39;&nbsp;stroked=&#39;f&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:TextBox&nbsp;inset=&#39;0pt,0pt,0pt,0pt&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;table&nbsp;width=&#39;100%&#39;&nbsp;border=&#39;0&#39;&nbsp;align=&#39;center&#39;&nbsp;cellspacing=&#39;0&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;tr&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;td&nbsp;align=&#39;center&#39;&nbsp;valign=&#39;middle&#39;&gt;&lt;div&nbsp;style=&#39;font-size:15pt;&nbsp;font-family:黑体;&#39;&gt;&lt;B&gt;&quot;&amp;table_title&amp;&quot;&lt;/B&gt;&lt;/div&gt;&lt;/td&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/tr&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/table&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:TextBox&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&nbsp;&quot;<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:rect&nbsp;id=&#39;back&#39;&nbsp;style=&#39;position:relative;left:1700;top:1200;width:20500;&nbsp;height:10500;&#39;&nbsp;fillcolor=&#39;#9cf&#39;&nbsp;strokecolor=&#39;#DFDFDF&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:fill&nbsp;rotate=&#39;t&#39;&nbsp;angle=&#39;-45&#39;&nbsp;focus=&#39;100%&#39;&nbsp;type=&#39;gradient&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:rect&gt;&quot;<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:rect&nbsp;id=&#39;back2&#39;&nbsp;style=&#39;position:relative;left:23000;top:1200;width:4000;&nbsp;height:&quot;&amp;(10500)&amp;&quot;;&#39;&nbsp;fillcolor=&#39;#9cf&#39;&nbsp;stroked=&#39;t&#39;&nbsp;strokecolor=&#39;#0099ff&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:fill&nbsp;rotate=&#39;t&#39;&nbsp;angle=&#39;-175&#39;&nbsp;focus=&#39;100%&#39;&nbsp;type=&#39;gradient&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:shadow&nbsp;on=&#39;t&#39;&nbsp;type=&#39;single&#39;&nbsp;color=&#39;silver&#39;&nbsp;offset=&#39;3pt,3pt&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:rect&gt;&quot;<br><br>for&nbsp;i=1&nbsp;to&nbsp;num1<br>if&nbsp;i=1&nbsp;then<br>displaystr=&quot;&quot;<br>else<br>displaystr=&quot;none&quot;<br>end&nbsp;if<br>response.Write&nbsp;&quot;&nbsp;&lt;div&nbsp;style=&#39;cursor:hand;&#39;&nbsp;onmouseover=&#39;moveon(rec&quot;&amp;i&amp;&quot;,line_&quot;&amp;i&amp;&quot;)&#39;&nbsp;onmouseout=&#39;moveout(rec&quot;&amp;i&amp;&quot;,line_&quot;&amp;i&amp;&quot;,&quot;&amp;i&amp;&quot;)&#39;&nbsp;onclick=&#39;clickit(&quot;&amp;i&amp;&quot;)&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;id=&#39;rec&quot;&amp;i&amp;&quot;&#39;&nbsp;style=&#39;position:relative;left:23100;top:&quot;&amp;(i-1)*10200/10+1450&amp;&quot;;width:3800;height:800;display:&quot;&amp;displaystr&amp;&quot;;&#39;&nbsp;fillcolor=&#39;#efefef&#39;&nbsp;strokecolor=&#39;&quot;&amp;bg_color(i)&amp;&quot;&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:fill&nbsp;opacity=&#39;.6&#39;&nbsp;color2=&#39;fill&nbsp;darken(118)&#39;&nbsp;o:opacity2=&#39;.6&#39;&nbsp;rotate=&#39;t&#39;&nbsp;method=&#39;linear&nbsp;sigma&#39;&nbsp;focus=&#39;100%&#39;&nbsp;type=&#39;gradient&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:23200;top:&quot;&amp;(i-1)*10200/10+1500&amp;&quot;;width:600;height:700&#39;&nbsp;fillcolor=&#39;&quot;&amp;bg_color(i)&amp;&quot;&#39;&nbsp;stroked=&#39;f&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:24000;top:&quot;&amp;(i-1)*10200/10+1500&amp;&quot;;width:3400;height:700&#39;&nbsp;filled=&#39;f&#39;&nbsp;stroked=&#39;f&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:TextBox&nbsp;inset=&#39;0pt,4pt,0pt,0pt&#39;&nbsp;style=&#39;font-size:9pt;&#39;&gt;&lt;div&nbsp;align=&#39;left&#39;&gt;&quot;&amp;stat_array(i,2)&amp;&quot;&lt;/div&gt;&lt;/v:TextBox&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&nbsp;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/div&gt;&nbsp;&quot;<br>next<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;ID=&#39;X&#39;&nbsp;from=&#39;1700,11700&#39;&nbsp;to=&#39;22700,11700&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#000000&#39;&nbsp;strokeWeight=1pt&gt;&lt;v:stroke&nbsp;EndArrow=&#39;Classic&#39;/&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;ID=&#39;Y&#39;&nbsp;from=&#39;1700,900&#39;&nbsp;to=&#39;1700,11700&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#000000&#39;&nbsp;strokeWeight=1pt&gt;&lt;v:stroke&nbsp;StartArrow=&#39;Classic&#39;/&gt;&lt;/v:line&gt;&quot;<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:100;top:700;width:1500;height:500&#39;&nbsp;filled=&#39;false&#39;&nbsp;stroked=&#39;false&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:TextBox&nbsp;inset=&#39;0pt,0pt,0pt,0pt&#39;&nbsp;style=&#39;font-size:9pt;&#39;&gt;&lt;div&nbsp;align=&#39;right&#39;&gt;&quot;&amp;Y_unit&amp;&quot;&lt;/div&gt;&lt;/v:TextBox&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&nbsp;&quot;&nbsp;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:22200;top:11900;width:2000;height:500&#39;&nbsp;filled=&#39;false&#39;&nbsp;stroked=&#39;false&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:TextBox&nbsp;inset=&#39;0pt,0pt,0pt,0pt&#39;&nbsp;style=&#39;font-size:9pt;&#39;&gt;&lt;div&nbsp;align=&#39;left&#39;&gt;&quot;&amp;X_unit&amp;&quot;&lt;/div&gt;&lt;/v:TextBox&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&nbsp;&quot;&nbsp;<br><br>for&nbsp;i=0&nbsp;to&nbsp;4<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;1300,&quot;&amp;i*2000+1700&amp;&quot;&#39;&nbsp;to=&#39;1700,&quot;&amp;i*2000+1700&amp;&quot;&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#000000&#39;&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;1700,&quot;&amp;i*2000+1700&amp;&quot;&#39;&nbsp;to=&#39;2200,&quot;&amp;i*2000+1200&amp;&quot;&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;2200,&quot;&amp;i*2000+1200&amp;&quot;&#39;&nbsp;to=&#39;22200,&quot;&amp;i*2000+1200&amp;&quot;&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;2200,&quot;&amp;i*2000+2200&amp;&quot;&#39;&nbsp;to=&#39;22200,&quot;&amp;i*2000+2200&amp;&quot;&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:stroke&nbsp;dashstyle=&#39;Dot&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:line&gt;&quot;<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:100;top:&quot;&amp;i*2000+1250&amp;&quot;;width:1500;height:500&#39;&nbsp;filled=&#39;false&#39;&nbsp;stroked=&#39;false&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:TextBox&nbsp;inset=&#39;0pt,0pt,0pt,0pt&#39;&nbsp;style=&#39;font-size:9pt;&#39;&gt;&lt;div&nbsp;align=&#39;right&#39;&gt;&quot;&amp;item_hight*(5-i)&amp;&quot;&lt;/div&gt;&lt;/v:TextBox&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&nbsp;&quot;&nbsp;<br>next<br><br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;2200,11200&#39;&nbsp;to=&#39;22200,11200&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;2200,1200&#39;&nbsp;to=&#39;2200,11200&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;1700,11700&#39;&nbsp;to=&#39;2200,11200&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;/v:line&gt;&quot;<br><br>for&nbsp;j=0&nbsp;to&nbsp;num2-1<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;&quot;&amp;j*item_width+1700&amp;&quot;,11700&#39;&nbsp;to=&#39;&quot;&amp;j*item_width+1700&amp;&quot;,12000&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#000000&#39;&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;&quot;&amp;j*item_width+1700&amp;&quot;,11700&#39;&nbsp;to=&#39;&quot;&amp;j*item_width+2200&amp;&quot;,11200&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;v:stroke&nbsp;dashstyle=&#39;ShortDot&#39;/&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;&quot;&amp;j*item_width+2200&amp;&quot;,1200&#39;&nbsp;to=&#39;&quot;&amp;j*item_width+2200&amp;&quot;,11200&#39;&nbsp;style=&#39;z-index:2&#39;&nbsp;strokecolor=&#39;#0099FF&#39;&gt;&lt;v:stroke&nbsp;dashstyle=&#39;ShortDot&#39;/&gt;&lt;/v:line&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:Rect&nbsp;style=&#39;position:relative;left:&quot;&amp;j*item_width+1700-item_width/2&amp;&quot;;top:12100;width:&quot;&amp;item_width&amp;&quot;;height:500&#39;&nbsp;filled=&#39;false&#39;&nbsp;stroked=&#39;false&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;v:TextBox&nbsp;inset=&#39;0pt,0pt,0pt,0pt&#39;&nbsp;style=&#39;font-size:9pt;&#39;&gt;&lt;div&nbsp;align=&#39;center&#39;&gt;&quot;&amp;line_code(0,j+1)&amp;&quot;&lt;/div&gt;&lt;/v:TextBox&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:Rect&gt;&nbsp;&quot;&nbsp;<br>next<br>for&nbsp;i=1&nbsp;to&nbsp;num1<br>if&nbsp;i=1&nbsp;then<br>displaystr=&quot;&quot;<br>else<br>displaystr=&quot;none&quot;<br>end&nbsp;if<br>response.Write&nbsp;&quot;&nbsp;&lt;div&nbsp;id=&#39;line_&quot;&amp;i&amp;&quot;&#39;&nbsp;style=&#39;display:&quot;&amp;displaystr&amp;&quot;;&#39;&gt;&quot;<br>for&nbsp;j=0&nbsp;to&nbsp;num2-2<br>this_hight1&nbsp;=&nbsp;clng(line_code(i,j+1)/(5*item_hight)*10000)<br>this_hight2&nbsp;=&nbsp;clng(line_code(i,j+2)/(5*item_hight)*10000)<br>&#39;线条样式<br>response.Write&nbsp;&quot;&nbsp;&lt;v:line&nbsp;from=&#39;&quot;&amp;j*item_width+1850&amp;&quot;,&quot;&amp;(10000-this_hight1+1550)&amp;&quot;&#39;&nbsp;to=&#39;&quot;&amp;(j+1)*item_width+1850&amp;&quot;,&quot;&amp;(10000-this_hight2+1550)&amp;&quot;&#39;style=&#39;z-index:&quot;&amp;i*10&amp;&quot;;&#39;&nbsp;strokeweight=&#39;0.1pt&#39;&nbsp;strokecolor=&#39;&quot;&amp;bg_color(i)&amp;&quot;&#39;&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;o:extrusion&nbsp;v:ext=&#39;view&#39;&nbsp;backdepth=&#39;2pt&#39;&nbsp;on=&#39;t&#39;&nbsp;lightposition=&#39;-50000,-50000&#39;&nbsp;lightposition2=&#39;50000&#39;/&gt;&quot;<br>response.Write&nbsp;&quot;&nbsp;&lt;/v:line&gt;&quot;<br>next<br>response.Write&nbsp;&quot;&nbsp;&lt;/div&gt;&quot;<br>next<br><br>response.Write&nbsp;&quot;&lt;/v:group&gt;&quot;&nbsp;<br>end&nbsp;function<br>%&gt;<br>&lt;html&nbsp;xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot;&nbsp;xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot;&gt;<br>&lt;head&gt;<br>&lt;title&gt;NH&nbsp;Firewall&nbsp;流量&lt;/title&gt;<br>&lt;body&nbsp;topmargin=&quot;0&quot;&nbsp;leftmargin=&quot;0&quot;&gt;<br>&lt;STYLE&gt;<br>v\:*&nbsp;{&nbsp;Behavior:&nbsp;url(#default#VML)&nbsp;}<br>o\:*&nbsp;{&nbsp;behavior:&nbsp;url(#default#VML)&nbsp;}<br>&lt;/STYLE&gt;<br>&lt;SCRIPT&nbsp;LANGUAGE=&quot;JavaScript&quot;&gt;<br>&lt;!--<br>var&nbsp;showit&nbsp;=&nbsp;new&nbsp;Array(10);<br><br>function&nbsp;moveon(iteam,lineit){<br>temp=eval(iteam)<br>templine=eval(lineit)<br>if(showit[1]){<br>rec1.style.display&nbsp;=&nbsp;&quot;&quot;;<br>line_1.style.display&nbsp;=&nbsp;&quot;&quot;;<br>}else{<br>rec1.style.display&nbsp;=&nbsp;&quot;none&quot;;<br>line_1.style.display&nbsp;=&nbsp;&quot;none&quot;;<br>}&nbsp;<br>temp.style.display&nbsp;=&nbsp;&quot;&quot;;<br>templine.style.display&nbsp;=&nbsp;&quot;&quot;;<br>}<br>function&nbsp;moveout(iteam,lineit,i){<br>temp=eval(iteam)<br>templine=eval(lineit)<br>if&nbsp;(showit[i]){<br>temp.style.display&nbsp;=&nbsp;&quot;&quot;;<br>templine.style.display&nbsp;=&nbsp;&quot;&quot;;<br>}else{<br>temp.style.display&nbsp;=&nbsp;&quot;none&quot;;<br>templine.style.display&nbsp;=&nbsp;&quot;none&quot;;<br>}<br>}<br>function&nbsp;clickit(i){<br>if&nbsp;(showit[i]){<br>showit[i]=false<br>}else{<br>showit[i]=true<br>}&nbsp;<br>}<br>--&gt;<br>&lt;/script&gt;<br>&lt;/head&gt;<br><br>&lt;%<br>dim&nbsp;total(2,2)<br><br>total(0,1)=&quot;60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1&quot;<br>total(1,1)=&quot;2,1,2,0,0,0,1,0,1,0,0,0,1,0,2,0,1,1,1,2,3,1,6,8,8,6,9,7,6,7,9,11,7,7,8,5,3,0,1,2,1,5,0,4,10,0,1,0,0,1,3,5,2,4,2,4,8,5,4,5&quot;<br>total(2,1)=&quot;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,2,2,37,1&quot;<br><br><br>total(1,2)=&quot;发送&quot;<br>total(2,2)=&quot;接收&quot;<br><br><br>call&nbsp;table1(total,0,0,850,300,&quot;NF&nbsp;防火墙流量15:15:47&quot;,&quot;分&quot;,&quot;KB&quot;)<br>%&gt;<br><br>&lt;/script&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;script&gt;&nbsp;<br>&lt;!--&nbsp;<br>var&nbsp;limit=&quot;20:00&quot;&nbsp;<br><br>if&nbsp;(document.images){&nbsp;<br>var&nbsp;parselimit=limit.split(&quot;:&quot;)&nbsp;<br>parselimit=parselimit[0]*60+parselimit[1]*1&nbsp;<br>}&nbsp;<br><br>function&nbsp;beginrefresh(){&nbsp;<br>if&nbsp;(!document.images)&nbsp;<br>return&nbsp;<br>if&nbsp;(parselimit==1)&nbsp;<br>window.location.reload()&nbsp;<br>else{&nbsp;<br>parselimit-=1&nbsp;<br>curmin=Math.floor(parselimit/60)&nbsp;<br>cursec=parselimit%60&nbsp;<br>if&nbsp;(curmin!=0)&nbsp;<br>curtime=curmin+&quot;&nbsp;min&nbsp;&quot;+cursec+&quot;&nbsp;sec&nbsp;&quot;&nbsp;<br>else&nbsp;<br>curtime=cursec+&quot;&nbsp;sec&nbsp;&quot;&nbsp;<br>window.status=curtime&nbsp;<br>setTimeout(&quot;beginrefresh()&quot;,1)&nbsp;<br>}&nbsp;<br>}&nbsp;<br><br>window.onload=beginrefresh&nbsp;<br>//--&gt;&nbsp;<br>&lt;/script&gt;&nbsp;<br><br>&lt;/body&gt;<br>&lt;/html&gt;</div></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=163</link><title><![CDATA[每五秒的网卡流量 windows]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-7-10 13:14:43</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=163</guid><description><![CDATA[<p id=fp>这个东西我是用来做网络流量曲线图的!<br><br>@echo&nbsp;off<br>:begin<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$2}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;Received=%%i<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$3}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;Sent=%%i<br>sleep&nbsp;5s<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$2}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;Received1=%%i<br>for&nbsp;/f&nbsp;%%i&nbsp;in&nbsp;(&#39;netstat&nbsp;-e&nbsp;^|grep&nbsp;Bytes&nbsp;^|&nbsp;gawk&nbsp;&#39;{print&nbsp;&nbsp;$3}&#39;&#39;)&nbsp;do&nbsp;set&nbsp;Sent1=%%i<br><br>set&nbsp;/a&nbsp;r=%Received1%-%Received%<br>set&nbsp;/a&nbsp;s=%sent1%-%sent%<br><br>echo&nbsp;%r%<br>echo&nbsp;%s%<br>:end<br>goto&nbsp;begin<br></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=162</link><title><![CDATA[多站点 批量回收 应用程序池]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-7-6 20:00:23</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=162</guid><description><![CDATA[<p id=fp>在虚拟主机行业当中，如果是使用WINDOWS2003&nbsp;IIS6服务，可能大家都会遇到应用程序池回收的问题！希望我写的这个东西对朋友们有用！<br><br><script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_4415')})</script><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="code_head"><tr><td>程序代码：</td><td align="right"><a href="javascript:CopyText(document.all.CODE_4415);">[ 复制代码到剪贴板 ]</a> </td></tr></table><div class="code_main" id="CODE_4415" style="overflow-y:auto;overflow-x:hidden;height:150px;">&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;<br>&#39;&nbsp;请在使用和转载时保留作者信息<br>&#39;&nbsp;AppPools.vbs<br>&#39;<br>&#39;&nbsp;Date:&nbsp;&nbsp;&nbsp;7/6/2007<br>&#39;&nbsp;Company&nbsp;Newhi<br>&#39;&nbsp;www.newhi.net<br>&#39;&nbsp;Email&nbsp;liuqi@newhi.net<br>&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;<br>strComputer&nbsp;=&nbsp;&quot;.&quot;<br>Do<br>set&nbsp;WebServiceObj&nbsp;=&nbsp;GetObject(&quot;IIS://LocalHost/w3svc&quot;)<br><br>&#39;&nbsp;定义第一个WEB站点为web1,应用程序池名称为DefaultAppPool<br>set&nbsp;web1&nbsp;=&nbsp;GetObject(&quot;IIS://LocalHost/w3svc/AppPools/DefaultAppPool&quot;)<br>web1.Stop<br>web1.Start<br><br><br>&#39;&nbsp;定义第二个WEB站点为web2,应用程序池名称为mrtg&nbsp;<br>set&nbsp;web2&nbsp;=&nbsp;GetObject(&quot;IIS://LocalHost/w3svc/AppPools/mrtg&quot;)<br>web2.Stop<br>web2.Start<br><br>&#39;&nbsp;回收定时&nbsp;一秒等于1000&nbsp;现在设置为3小时<br>WScript.Sleep(10800000)<br>LOOP</div></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=161</link><title><![CDATA[基于WEB控制的WINDOWS防火墙]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-6-30 14:03:32</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=161</guid><description><![CDATA[<p id=fp>基于WEB控制的WINDOWS防火墙&nbsp;<br><br><br>可以按照IP段和端口范围来做屏蔽！&nbsp;暂时是测试版本，功能还有待完善！<br><br>登录界面<br><img src="attachments/month_0706/kh0n_logo.jpg" border="0" onload="javascript:DrawImage(this);"  alt="按此在新窗口打开图片" onmouseover="this.style.cursor='hand';" onclick="window.open(this.src);" /><br><br><br>主要操作界面<br><img src="attachments/month_0706/if8l_1.jpg" border="0" onload="javascript:DrawImage(this);"  alt="按此在新窗口打开图片" onmouseover="this.style.cursor='hand';" onclick="window.open(this.src);" /><br><br><br>修改界面<br><img src="attachments/month_0706/mjbp_2.jpg" border="0" onload="javascript:DrawImage(this);"  alt="按此在新窗口打开图片" onmouseover="this.style.cursor='hand';" onclick="window.open(this.src);" /><br><br><br>newhi&nbsp;防火墙&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NH&nbsp;Firewall</p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=160</link><title><![CDATA[负载均衡软件实现方式]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-6-29 15:05:25</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=160</guid><description><![CDATA[<p id=fp><br>负载均衡软件实现方式之一&nbsp;-&nbsp;URL重定向方式<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>有一种用软件实现负载均衡的方式,是基于&quot;URL重定向&quot;的.<br> <br>先看看什么是URL重定向:<br> <br>&quot;简单的说，如果一个网站有正规的URL和别名URL，对别名URL进行重定向到正规URL，访问同一个网址，或者网站改换成了新的域名则把旧的域名重定向到新的域名，都叫URL重定向&quot;<br>(<a target="_blank" href="http://www.focuschina.com/service/host_faq.php)">http://www.focuschina.com/service/host_faq.php)</a><br> <br>&quot;很多网络协议都支持“重定向”功能，例如在HTTP协议中支持Location指令，接收到这个指令的浏览器将自动重定向到Location指明的另一个URL上。&quot;<br>(<a target="_blank" href="http://sysapp.51cto.com/art/200604/25388.htm)">http://sysapp.51cto.com/art/200604/25388.htm)</a><br> <br>这种方式,对于简单的网站,如果网站是自己开发的,也在一定程度上可行.但是它存在着较多的问题:<br>1、“例如一台服务器如何能保证它重定向过的服务器是比较空闲的，并且不会再次发送Location指令，Location指令和浏览器都没有这方面的支持能力，这样很容易在浏览器上形成一种死循环。”<br> <br>2、在哪里放LOCATION，也是一个问题。很有可能用户会访问系统的很多个不同URL，这个时候做起来会非常麻烦。并且，对URL的访问，有的时候是直接过来的，可以被重定向，有的时候是带着SESSION之类的，重定向就可能会出问题。并且，这种做法，将负载均衡这个系统级的问题放到了应用层，结果可能是麻烦多多。<br> <br>3、这种方式一般只适用于HTTP方式，但是实际上有太多情况不仅仅是HTTP方式了，特别是用户如果在应用里面插一点流媒体之类的。<br> <br>4、重定向的方式，效率远低于IP隧道。<br> <br>5、这种方式，有的时候会伴以对服务器状态的检测，但往往也是在应用层面实现，从而实时性大打折扣。<br> <br>实际上，这种方式是一种“对付”的解决方法，并不能真正用于企业级的负载均衡应用（这里企业级是指稍微复杂一点的应用系统）<br> <br>可以看一下专业的负载均衡软件是如何来实现的：<a target="_blank" href="http://www.ha999.com/pcl/pcl_sis_theory.htm">http://www.ha999.com/pcl/pcl_sis_theory.htm</a><br> <br>对比一下可以发现，专业的负载均衡软件要更适用于正规应用，而重定向方式则比较适用于一些简单的网站应用。<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br><br>负载均衡软件实现方式之二&nbsp;-&nbsp;基于DNS<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>讲到负载均衡，几乎所有地方都必须要讲一下基于DNS的方式，因为这实在是最基本、最简单的方式了。当然，也几乎所有地方都说到这种方式的种种缺点，不过，既然很基本，就还是要说明一下。<br> <br>下面这段讲得很清楚：<br><br>　　&nbsp;最早的负载均衡技术是通过DNS来实现的，在DNS中为多个地址配置同一个名字，因而查询这个名字的客户机将得到其中一个地址，从而使得不同的客户访问不同的服务器，达到负载均衡的目的。&nbsp;<br><br>　　&nbsp;DNS负载均衡是一种简单而有效的方法，但是它不能区分服务器的差异，也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候，必须尽量保证不同的客户计算机能均匀获得不同的地址。由于DNS数据具备刷新时间标志，一旦超过这个时间限制，其他DNS服务器就需要和这个服务器交互，以重新获得地址数据，就有可能获得不同IP地址。因此为了使地址能随机分配，就应使刷新时间尽量短，不同地方的DNS服务器能更新对应的地址，达到随机获得地址，然而将过期时间设置得过短，将使DNS流量大增，而造成额外的网络问题。DNS负载均衡的另一个问题是，一旦某个服务器出现故障，即使及时修改了DNS设置，还是要等待足够的时间（刷新时间）才能发挥作用，在此期间，保存了故障服务器地址的客户计算机将不能正常访问服务器。&nbsp;<br><br>　　&nbsp;尽管存在多种问题，但它还是一种非常有效的做法，包括Yahoo在内的很多大型网站都使用DNS。<br> <br>　　引自：负载均衡技术研究 <br>　　原文：<a target="_blank" href="http://www.ha999.com/loadbalance/lb_tech.htm">http://www.ha999.com/loadbalance/lb_tech.htm</a><br><br>　　比较一下DNS方式与专业的负载均衡软件如PCL负载均衡软件，会发现DNS的问题在于，一是往往不能根据系统与服务的状态来判断负载，二是往往不能建立较复杂的负载均衡算法，而最主要的是DNS往往有缓存，简单分配负载问题不大，如果是应用集群这个就是无法接受的。<br>　　那么，为什么象Yahoo在内的大型网站都使用DNS方式呢？因为对于门户网站来讲，应用形态单一且简单，重要的是服务器数量与分布，而如果出现短时间对于少量用户的服务中断问题并不大（比如有100台服务器，有一台不行了，即使DNS有缓存，也关系不大，用户重新刷一下，就很可能又分配到其他机器上了）。<br>　　但是，对于应用系统而言，比如两三台服务器，跑着比较复杂的应用，DNS方式就完全不适合了，这个时候，就要用专业的负载均衡软件了。<br>　　我们可以看一个实例，这样会对专业化负载均衡软件应该支持什么样的应用有更多的理解：36000人同时应用的负载均衡实例<br> <br> <br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br><br>负载均衡软件实现方式之三&nbsp;-&nbsp;LVS&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡.&nbsp;<br> <br>后面所附文章,讲述了LVS实现负载均衡的方法.<br> <br>因为文章较长,所以在转载前,先总结一下LVS的优缺点:<br> <br>优点:<br>1、开源，免费<br>2、在网上能找到一些相关技术资源<br>3、具有软件负载均衡的一些优点<br> <br>缺点：<br>1、具有开源产品常有的缺点，最核心的就是没有可靠的支持服务，没有人对其结果负责<br>2、功能比较简单，支持复杂应用的负载均衡能力较差，如算法较少等。<br>3、开启隧道方式需重编译内核<br>4、配置复杂<br>5、只支持LINUX，如果应用还包括WINDOWS、SOLIRIS等就不行了<br> <br>因此，建议在简单的LINUX应用中使用LVS，复杂的应用，或者重要的应用，还是应该使用专业的负载均衡软件，如富士通西门子公司的PCL负载均衡软件。<br> <br>下面转载一下如何使用LVS实现负载均衡：<br> <br>搭建集群负载均衡系统&nbsp;（原文：<a target="_blank" href="http://www.xxlinux.com/linux/article/network/app/20060707/2519.html">http://www.xxlinux.com/linux/artic ... p/20060707/2519.html</a>）<br><br>　　负载均衡集群是在应用服务器高负载的情况下，由多台节点提供可伸缩的，高负载的服务器组以保证对外提供良好的服务响应；而LVS就是实现这一功能的技术.实际上LVS是一种Linux操作系统上基于IP层的负载均衡调度技术，它在操作系统核心层上，将来自IP层的TCP/UDP请求均衡地转移到不同的服务器，从而将一组服务器构成一个高性能、高可用的虚拟服务器。使用三台机器就可以用LVS实现最简单的集群，如图1所示。  &nbsp;<br> &nbsp;<br> &nbsp;<br><br>图1 LVS实现集群系统结构简图&nbsp;<br><br>图1显示一台名为Director的机器是前端负载均衡器，运行LVS，目前只能在Linux下运行.可以针对web、ftp、cache、mms甚至mysql等服务做load balance;后端两台机器称之为Real Server，是需要负载均衡的服务器，可以为各类系统，Linux、Solaris、Aix、BSD、Windows都可，甚至Director本身也可以作为Real Server.&nbsp;<br><br>本文将通过实际操作，重点介绍如何在Redhat 9上用LVS构建一个负载均衡集群，关于负载均衡集群、LVS的详细内容，可参考如下信息： &nbsp;<br><a target="_blank" href="http://www.linuxvirtualserver.org/&nbsp;">http://www.linuxvirtualserver.org/&nbsp;</a><br><a target="_blank" href="http://www-900.ibm.com/developerWorks/cn/linux/cluster/lvs/part1/index.shtml">http://www-900.ibm.com/developerWorks/ ... r/lvs/part1/index.shtml</a> &nbsp;<br>安装LVS&nbsp;<br>RedHat在 9.0以后，就将ipvsadm这些套件去除，因此如果想使用LVS(Linux Virtual Server)，就得自己重新编译核心(kernel)。&nbsp;<br>下载所需软件&nbsp;<br>下载ipvs补丁包&nbsp;<br><br>从RedHat 9开始ipvs不再被预先编译到了RedHat发行版的内核中，我们需要从<a target="_blank" href="http://www.linuxvirtualserver.org/software/kernel-2.4">http://www.linuxvirtualserver.org/software/kernel-2.4</a>下载新版的ipvs, 这里我们使用ipvs-1.0.9.tar.gz这个版本.&nbsp;<br>下载内核linux-2.4.20.tar.gz &nbsp;<br><br>这里需要强调的是由于所有的ipvs的补丁包都是为标准内核开发的，所以安装ipvs时不能使用RedHat光盘中的Kernel Source，而是需要去下载标准的内核。所以我们从<a target="_blank" href="ftp://ftp.kernel.org/pub/linux/kernel/">ftp://ftp.kernel.org/pub/linux/kernel/</a> 得到standard kernel linux-2.4.20.tar.gz &nbsp;<br><br>下载ipvs管理工具ipvsadm&nbsp;<br><br>从<a target="_blank" href="http://www.linuxvirtualserver.org/">http://www.linuxvirtualserver.org/</a> 得到ipvs管理工具ipvsadm-1.21.tar.gz, ipvsadm是设置ipvs转发方式和调度算法的工具.&nbsp;<br>开始安装&nbsp;<br>安装内核源码&nbsp;<br><br>把linux-2.4.20.tar.gz解压到/usr/src目录，生成了/usr/src/linux目录；如果生成的是/usr/src/linux-2.4.20目录，则要在/usr/src下建立一个连接 ln –s linux-2.4.20 linux，因为在ipvs-1.0.9中的makefile文件中默认指定Kernel Source的路径为：KERNELSOURCE = /usr/src/linux &nbsp;<br><br>把ipvs补丁Patch到内核源码中&nbsp;<br><br>把ipvs-1.0.9.tar.gz解压缩到某个目录，如/test，生成了/test/ipvs-1.0.9目录；进入/test/ipvs-1.0.9，依次执行如下命令：make patchkernel、make installsource,将ipvs的Patch加载到kernel的source中。&nbsp;<br><br>重新编译支持ipvs的内核 &nbsp;<br><br>进入/usr/src/linux目录，分别执行： &nbsp;<br>make mrproper 为创建新的内和配置做好准备 &nbsp;<br>make menuconfig 进行配置  &nbsp;<br>这里请确保IP:Virtual Server Configuration中的选项设定都用M &nbsp;<br>make dep 检测是否有相关的软件包被使用 &nbsp;<br>make clean 为新内核结构准备源目录树 &nbsp;<br>make bzImage 创建内核引导映像 &nbsp;<br>make modules、make modules_install 生成模块&nbsp;<br>make install安装新的内核到指定位置并重新配置grub.conf&nbsp;<br>到这里新内核就安装完毕了,请重启并用此内核引导系统&nbsp;<br><br>安装ipvs管理工具ipvsadm &nbsp;<br><br>当使用新内核启动后，就可以安装ipvsadm:&nbsp;<br>tar xzvf ipvsadm-1.21.tar.gz &nbsp;<br>cd ./ipvsadm-1.21 &nbsp;<br>make &nbsp;<br>make install &nbsp;<br>安装完成后，执行ipvsadm命令，如果有如下信息出现则说明安装成功了。 &nbsp;<br> &nbsp;<br>[root@leon c]# ipvsadm&nbsp;<br>IP Virtual Server version 1.0.9 (size=65536)&nbsp;<br>Prot LocalAddress:Port Scheduler Flags&nbsp;<br>  -&gt;; RemoteAddress:Port           Forward Weight ActiveConn InActConn&nbsp;<br><br>到现在为止，支持负载均衡功能的director就安装成功了，接下来我们可以通过ipvsadm来配置一个负载均衡集群。&nbsp;<br><br>构建负载均衡集群 &nbsp;<br><br>这里我们假设局域网中有两台FTP服务器,IP分别为FTP1:10.83.33.103,FTP2: 10.83.33.2&nbsp;<br>所提供的资料都是相同的,这可以通过无密码SSH登录+RSYNC来保证数据一致,这非本文中电,故而略过.我们提供给用户的虚拟IP是10.83.33.100,而在后台为这两台FTP服务器实行LVS负载均衡的服务器的IP是10.83.33.83.这三台均安装RedHat9系统.&nbsp;<br>我们最终要实现的目标是当用户输入ftp 10.83.33.100时, LVS负载均衡服务器系统会根据当时的负载情况,依据轮换策略来决定Real Server到底是FTP1还是FTP2,从而使得整个FTP服务器的负载到达均衡.&nbsp;<br>目前LVS有三种负载平衡方式，NAT（Network Address Translation），DR（Direct Routing），IP Tunneling。其中，最为常用的是DR方式，因此这里只说明DR(Direct Routing)方式的LVS负载平衡。其它两种的详细情况请参考LVS-HOWTO.&nbsp;<br><br>Director(即10.83.33.83)上执行的设置&nbsp;<br>为了方便我们将所有步骤写成一个shell script.&nbsp;<br><br>#!/bin/bash&nbsp;<br>echo &quot;0&quot; &gt;; /proc/sys/net/ipv4/ip_forward (关闭ip_forward)&nbsp;<br>echo &quot;1&quot; &gt;; /proc/sys/net/ipv4/conf/all/send_redirects (开启ICMP Redirects)&nbsp;<br>echo &quot;1&quot; &gt;; /proc/sys/net/ipv4/conf/default/send_redirects (开启ICMP Redirects)&nbsp;<br>echo &quot;1&quot; &gt;; /proc/sys/net/ipv4/conf/eth0/send_redirects  (开启ICMP Redirects)&nbsp;<br>ifconfig eth0:100 10.83.33.100 broadcast 10.83.33.100 netmask 255.255.255.255&nbsp;<br>(设置虚拟IP)&nbsp;<br>route add -host 10.83.33.100 dev eth0:100 (设置达到虚拟Ip的路由)&nbsp;<br>ipvsadm –C (清空ipvsadm table)&nbsp;<br>ipvsadm -A -t 10.83.33.100:21 -s wrr (建立service rule, 当前调度算法为加权轮叫调度)&nbsp;<br>ipvsadm -a -t 10.83.33.100:21 -r 10.83.33.76 -g -w 3 (建立转发规则)&nbsp;<br>ipvsadm -a -t 10.83.33.100:21 -r 10.83.33.2 -g -w 1  (建立转发规则)&nbsp;<br>ipvsadm (检查当前ipvsadm table)&nbsp;<br><br>将此shell script加入到/etc/rc.local中，这样在每次系统启动时都可以自动运行进行设置了。&nbsp;<br>Realserver(即10.83.33.2和10.83.33.76)上的设置&nbsp;<br><br>这里我们必须先修正real server上arp problem .这是因为在使用VS/DR的时候，real server会在一块网卡上绑定两个IP，但linux在kernel 2.2.14以后就将eth0:1的NOARP FLAG关闭，这使得eth0:1仅仅是eth0的别名，任何对eth0:1的操作都对eth0有效，因此如果此时使eth0:1 NOARP，则也使得eth0 NOARP,这样整个网卡都不会收到数据包,具体的说就是因为我所有的机器都放在同一个网段，当该网段的Router接收到用户对虚拟IP的TCP connection要求(即使用FTP登录服务器)时，会先在网段中利用Arp request询问谁有VIP的地址，而包含Director与Real Servers上所有的interface,只要他有那个ip，都会发送arp reply回去，造成网段内所有拥有Virtual IP的interface都会reply给Router，最后结果就是看谁的速度快，Router就将该封包送给谁，如此会造成LVS的Server并无法发挥其效果，而我们所希望的是只有Director上的Virtual IP发送arp reply回去,因此需要利用hidden这个pattch，将real server上的Virtual IP给隐藏起来，如此他就不会对Arp Request进行Reply，就可以解决ARP的问题.具体步骤是:&nbsp;<br><br>下载所需的软件包 &nbsp;<br><br>从<a target="_blank" href="http://www.ssi.bg/~ja/">http://www.ssi.bg/~ja/</a> 得到hidden修正包,不同的核心使用相应的版本.请参考下表&nbsp;<br><br>Patch&nbsp;Linux 2.4&nbsp;Created&nbsp;<br>hidden-2.4.28-1.diff &nbsp;2.4.28 - 2.4.30 &nbsp;November 18, 2004 &nbsp;<br>hidden-2.4.26-1.diff &nbsp;2.4.26 - 2.4.27 &nbsp;February 28, 2004 &nbsp;<br>hidden-2.4.25-1.diff &nbsp;2.4.25 &nbsp;February 19, 2004 &nbsp;<br>hidden-2.4.20pre10-1.diff &nbsp;2.4.20pre10 - 2.4.24 &nbsp;October 12, 2002 &nbsp;<br>hidden-2.4.19pre5-1.diff &nbsp;2.4.19pre5 - 2.4.20pre9 &nbsp;April 7, 2002 &nbsp;<br>hidden-2.4.5-1.diff &nbsp;2.4.5 - 2.4.19pre4 &nbsp;June 2, 2001 &nbsp;<br>hidden-2.4.4-1.diff &nbsp;2.4.4 &nbsp;April 29, 2001 &nbsp;<br>Patch&nbsp;Linux 2.6&nbsp;Created&nbsp;<br>hidden-2.6.9-1.diff &nbsp;2.6.9 - 2.6.11 &nbsp;October 19, 2004 &nbsp;<br>hidden-2.6.4-1.diff &nbsp;2.6.4 - 2.6.8 &nbsp;March 12, 2004 &nbsp;<br>hidden-2.6.3-1.diff &nbsp;2.6.3 &nbsp;February 19, 2004 &nbsp;<br>hidden-2.5.67-1.diff &nbsp;2.5.67 - 2.6.2 &nbsp;April 9, 2003 &nbsp;<br><br>本例使用的内核版本是2.4.20-8,因此下载hidden-2.4.20pre10-1.diff&nbsp;<br><br>重新编译内核，修正arp problem &nbsp;<br><br>把hidden-2.4.20pre10-1.diff放到/usr/src/linux下，用命令&nbsp;<br>patch -p1 &lt; hidden-2.4.20pre10-1.diff对kernel进行patch &nbsp;<br>进入/usr/src/linux目录，分别执行： &nbsp;<br>make mrproper 为创建新的内和配置做好准备 &nbsp;<br>make menuconfig 进行配置   &nbsp;<br>make dep 检测是否有相关的软件包被使用 &nbsp;<br>make clean 为新内核结构准备源目录树 &nbsp;<br>make bzImage 创建内核引导映像 &nbsp;<br>make modules、make modules_install 生成模块&nbsp;<br>make install 安装新的内核到指定位置并重新配置grub.conf&nbsp;<br>到这里新内核就安装完毕了,请重启并用此内核引导系统&nbsp;<br><br>设置Real server&nbsp;<br><br>为了方便我们将所有步骤写成一个shell script.&nbsp;<br><br>#!/bin/bash&nbsp;<br>echo &quot;0&quot; &gt;; /proc/sys/net/ipv4/ip_forward (关闭ip_forward)&nbsp;<br>ifconfig lo:100 10.83.33.100 broadcast 10.83.33.100 netmask 0xffffffff up (设置虚拟IP)&nbsp;<br>route add -host 10.83.33.100 dev lo:100 (设置达到虚拟Ip的路由)&nbsp;<br>echo &quot;1&quot; &gt;; /proc/sys/net/ipv4/conf/all/hidden (开启No-ARP)&nbsp;<br>echo &quot;1&quot; &gt;; /proc/sys/net/ipv4/conf/lo/hidden  (开启No-ARP)&nbsp;<br><br>将此shell script加入到/etc/rc.local中，这样在每次系统启动时都可以自动运行进行设置了。&nbsp;<br><br>测试&nbsp;<br>为了使得我们清楚地知道访问的是那一台FTP服务器,我们在FTP1上编辑/etc/vsftpd/vsftpd.conf,设置ftpd_banner=Welcome to FTP1 server,在FTP2设置ftpd_banner=Welcome to FTP2 server,设置完毕后重启服务.&nbsp;<br>现在在另一台客户机开几个终端,依次输入ftp 10.83.33.100,我们可以从欢迎词上看到,每次登录的FTP服务器都不是固定的,它会在FTP1和FTP2上互相交替,试验成功!&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br><br>负载均衡软件实现方式之四&nbsp;-&nbsp;专业负载均衡软件&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>看一下专业的负载均衡软件是什么样的：PCL负载均衡软件<br>详细内容，大家可以自己去看。简单讲，专业负载均衡软件大概有以下特点：<br> <br>1、它是基于IP隧道的，而不是象URL重定向方式那样。所以，它是独立于应用的<br> <br>2、它支持不同平台，即应用可以是基于LINUX，WINDOWS或SOLARIS的，而不是象LVS只能在LINUX上<br> <br>3、它是实时的，这点与DNS方式有极大的差别。<br> <br>4、它能够根据系统、应用的情况来决定负载，这一点与硬件负载均衡设备有很大差别。<br> <br>5、专业负载均衡软件，适用于企业级应用，无论从其可靠性，还是从其服务保障上，都不是象LVS那样的开源软件可比的。<br> <br>总结一下，如果是象YAHOO那样的网站应用，可以考虑DNS方式，参见：负载均衡软件实现方式之二&nbsp;-&nbsp;基于DNS &nbsp;<br> <br>如果是特别简单的应用，可以考虑URL重定向方式，参见：负载均衡软件实现方式之一&nbsp;-&nbsp;URL重定向方式&nbsp;<br> <br>如果是不太重要的纯LINUX应用，可以考虑LVS，参见：负载均衡软件实现方式之三&nbsp;-&nbsp;LVS&nbsp;<br> <br>如果是重要、流量大、应用简单、预算充足的情况，可以考虑硬件方式（比如用F5）（一定要做双机啊！），参见：软件与硬件负载均衡的比较&nbsp;<br> <br>而如果是重要的企业应用，两台或几十台服务器，应用比较复杂，包括有可能跨平台，则应该考虑专业的负载均衡软件。参见：PCL负载均衡软件-应用集群的理想选择<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br></p>]]></description></item><item><link>http://blog.newhi.net/blogview.asp?logID=159</link><title><![CDATA[基于Squid的反向加速多个WEB服务器[配置文档]]></title><author>liuqi</author><category>博客技术</category><pubDate>2007-6-24 5:19:49</pubDate><guid>http://blog.newhi.net/blogview.asp?logID=159</guid><description><![CDATA[<p id=fp>基于Squid的反向加速多个WEB服务器[配置文档#Support&nbsp;for&nbsp;External&nbsp;functions<br><br>##############&nbsp;<br>#&nbsp;Auth&nbsp;<br>############<br><br><br>auth_param&nbsp;basic&nbsp;children&nbsp;5<br><br>auth_param&nbsp;basic&nbsp;realm&nbsp;Squid&nbsp;proxy-caching&nbsp;web&nbsp;server<br><br>auth_param&nbsp;basic&nbsp;credentialsttl&nbsp;2&nbsp;hours<br><br>auth_param&nbsp;basic&nbsp;casesensitive&nbsp;off<br><br>#Tuning&nbsp;the&nbsp;Squid&nbsp;Cache<br><br>###############<br><br>#refresh_pattern<br><br>#控制对象的超时时间<br><br>################<br><br><br>refresh_pattern&nbsp;^ftp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1440&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10080<br><br>refresh_pattern&nbsp;^gopher:&nbsp;&nbsp;&nbsp;1440&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0%&nbsp;&nbsp;1440<br><br>refresh_pattern&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4320<br><br>refresh_pattern&nbsp;-i&nbsp;\.gif$&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;1000%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ignore-reload<br><br>refresh_pattern&nbsp;-i&nbsp;\.jpg$&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;1000%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ignore-reload<br><br>refresh_pattern&nbsp;-i&nbsp;\.png$&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;1000%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ignore-reload<br><br>refresh_pattern&nbsp;-i&nbsp;\.bmp$&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;1000%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ignore-reload<br><br>refresh_pattern&nbsp;-i&nbsp;\.css$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload-into-ims<br><br>refresh_pattern&nbsp;-i&nbsp;\.js$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload-into-ims<br><br>refresh_pattern&nbsp;-i&nbsp;\.htm$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload-into-ims<br><br>refresh_pattern&nbsp;-i&nbsp;\.shtm$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload-into-ims<br><br>refresh_pattern&nbsp;-i&nbsp;\.html$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload-into-ims<br><br>#refresh_pattern&nbsp;-i&nbsp;\.aspx$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload-into-ims<br><br><br>quick_abort_min&nbsp;0&nbsp;KB<br><br>quick_abort_max&nbsp;0&nbsp;KB<br><br>range_offset_limit&nbsp;-1&nbsp;KB<br><br><br>###negative_ttl&nbsp;30&nbsp;seconds<br><br>&nbsp;<br><br>#&nbsp;Timeouts&nbsp;<br><br><br>#&nbsp;forward_timeout&nbsp;4&nbsp;minutes<br><br>forward_timeout&nbsp;20&nbsp;seconds<br><br>#&nbsp;connect_timeout&nbsp;1&nbsp;minute<br><br>connect_timeout&nbsp;15&nbsp;seconds<br><br>#&nbsp;read_timeout&nbsp;15&nbsp;minutes<br><br>read_timeout&nbsp;3&nbsp;minutes<br><br>#&nbsp;request_timeout&nbsp;5&nbsp;minutes<br><br>request_timeout&nbsp;1&nbsp;minutes<br><br>#&nbsp;persistent_request_timeout&nbsp;1&nbsp;minute<br><br>persistent_request_timeout&nbsp;15&nbsp;seconds<br><br>#&nbsp;client_lifetime&nbsp;1&nbsp;day<br><br>client_lifetime&nbsp;15&nbsp;minutes<br><br>#&nbsp;pconn_timeout&nbsp;120&nbsp;seconds<br><br>#&nbsp;shutdown_lifetime&nbsp;30&nbsp;seconds<br><br>shutdown_lifetime&nbsp;5&nbsp;seconds<br><br>&nbsp;<br><br>#&nbsp;Administrative&nbsp;parameters&nbsp;<br><br>#设置管理信息<br><br><br>visible_hostname&nbsp;cache.dm.net<br><br><br>#cachemgr_passwd&nbsp;csdnadmin&nbsp;all<br><br><br>#设置运行时的用户和组权限<br><br>cache_effective_user&nbsp;squid<br><br>cache_effective_group&nbsp;squid<br><br><br>#&nbsp;Peer&nbsp;cache&nbsp;servers&nbsp;and&nbsp;Squid&nbsp;hierarchy<br><br>#hierarchy_stoplist&nbsp;cgi-bin&nbsp;?<br><br>###acl&nbsp;QUERY&nbsp;urlpath_regex&nbsp;cgi-bin&nbsp;\?<br><br>#acl&nbsp;QUERY&nbsp;urlpath_regex&nbsp;\?<br><br>#no_cache&nbsp;deny&nbsp;QUERY<br><br><br>#Cache&nbsp;size&nbsp;<br><br><br>#设置squid用户hot&nbsp;object的物理内存的大小以及设置cache目录<br><br>&nbsp;<br><br>cache_mem&nbsp;512&nbsp;MB<br><br>maximum_object_size&nbsp;32768&nbsp;KB<br><br>maximum_object_size_in_memory&nbsp;512&nbsp;KB<br><br><br>#Swap性能微调<br><br><br>half_closed_clients&nbsp;off<br><br>cache_swap_high&nbsp;95%<br><br>cache_swap_low&nbsp;80%<br><br>maximum_object_size&nbsp;1024&nbsp;KB<br><br><br>###cache_replacement_policy&nbsp;heap&nbsp;GDSF<br><br>###memory_replacement_policy&nbsp;heap&nbsp;GDSF<br><br>&nbsp;<br><br>#Log&nbsp;file&nbsp;path&nbsp;names&nbsp;and&nbsp;cache&nbsp;directories<br><br>&nbsp;<br><br>cache_dir&nbsp;ufs&nbsp;/Data/apps/squid/cache&nbsp;40960&nbsp;56&nbsp;256<br><br>&nbsp;<br><br><br>###cache_dir&nbsp;null&nbsp;/Data/apps/squid/cache<br><br><br>coredump_dir&nbsp;/Data/apps/squid/cache<br><br>&nbsp;<br><br>&nbsp;<br><br>#对日志文件和pid文件位置进行设置<br><br><br>#cache_access_log&nbsp;/Data/apps/squid/var/logs/access.log<br><br>###cache_access_log&nbsp;none<br><br>cache_log&nbsp;/Data/apps/squid/var/logs/cache.log<br><br>###cache_log&nbsp;/dev/null<br><br>###useragent_log&nbsp;/opt/itc/squid/logs/useragent.log<br><br>cache_store_log&nbsp;none<br><br>emulate_httpd_log&nbsp;on<br><br>#&nbsp;logfile_rotate&nbsp;10<br><br>logfile_rotate&nbsp;0<br><br>#pid_filename&nbsp;/Data/apps/squid/var/logs/squid.pid<br><br>#&nbsp;&nbsp;TAG:&nbsp;relaxed_header_parser&nbsp;&nbsp;&nbsp;on|off|warn<br><br>#&nbsp;relaxed_header_parser&nbsp;on<br><br>&nbsp;<br><br>&nbsp;<br><br>#&nbsp;Delaypool&nbsp;parameters&nbsp;(all&nbsp;require&nbsp;delay_pools&nbsp;compilation&nbsp;options)<br><br>#####<br><br>#Tag&nbsp;Name&nbsp;strip_query_terms&nbsp;<br><br>#Usage&nbsp;strip_query_terms&nbsp;on|off&nbsp;<br><br>#Description<br><br>#Squid&nbsp;by&nbsp;default&nbsp;does&nbsp;not&nbsp;log&nbsp;query&nbsp;parameters.&nbsp;<br><br>#These&nbsp;parameters&nbsp;are&nbsp;however&nbsp;forwarded&nbsp;to&nbsp;the&nbsp;server&nbsp;verbatim.&nbsp;<br><br>#If&nbsp;we&nbsp;want&nbsp;to&nbsp;enable&nbsp;logging&nbsp;of&nbsp;query&nbsp;parameters,&nbsp;the&nbsp;strip_query_terms<br><br>#directive&nbsp;can&nbsp;be&nbsp;used&nbsp;.<br><br>#By&nbsp;default,&nbsp;Squid&nbsp;strips&nbsp;query&nbsp;terms&nbsp;from&nbsp;requested&nbsp;URLs&nbsp;before&nbsp;logging.&nbsp;<br><br>#This&nbsp;protects&nbsp;your&nbsp;user&#39;s&nbsp;privacy<br><br>#Default&nbsp;strip_query_terms&nbsp;on<br><br>&nbsp;<br><br>strip_query_terms&nbsp;off<br><br>client_persistent_connections&nbsp;off<br><br>#&nbsp;if&nbsp;need&nbsp;&quot;long&quot;&nbsp;connection&nbsp;set&nbsp;it&nbsp;to&nbsp;on<br><br>server_persistent_connections&nbsp;on<br><br>&nbsp;<br><br>#&nbsp;Tag&nbsp;Name&nbsp;dns_children&nbsp;<br><br>#Usage&nbsp;dns_children&nbsp;number&nbsp;(1&nbsp;to&nbsp;32)&nbsp;<br><br>#Description<br><br>#The&nbsp;number&nbsp;of&nbsp;processes&nbsp;spawn&nbsp;to&nbsp;service&nbsp;DNS&nbsp;name&nbsp;lookups&nbsp;are&nbsp;specified&nbsp;here.&nbsp;<br><br>#For&nbsp;heavily&nbsp;loaded&nbsp;caches&nbsp;on&nbsp;large&nbsp;servers,&nbsp;There&nbsp;is&nbsp;probably&nbsp;need&nbsp;to&nbsp;increase&nbsp;<br><br>#this&nbsp;value&nbsp;to&nbsp;at&nbsp;least&nbsp;10.&nbsp;The&nbsp;maximum&nbsp;is&nbsp;32.&nbsp;The&nbsp;default&nbsp;is&nbsp;5.&nbsp;This&nbsp;option&nbsp;is<br><br>#only&nbsp;available&nbsp;if&nbsp;Squid&nbsp;is&nbsp;rebuilt&nbsp;with&nbsp;the&nbsp;--disable-internal-dns&nbsp;option.&nbsp;The<br><br>#number&nbsp;of&nbsp;processes&nbsp;increases,&nbsp;the&nbsp;performance&nbsp;of&nbsp;DNS&nbsp;lookups&nbsp;also&nbsp;increases.&nbsp;<br><br>#It&nbsp;is&nbsp;recommended&nbsp;to&nbsp;use&nbsp;maximum&nbsp;child&nbsp;processes&nbsp;(32).<br><br>#<br><br><br>dns_children&nbsp;5<br><br><br>#dns_nameservers&nbsp;202.99.8.1<br><br><br>####<br><br>#&nbsp;Network<br><br><br>http_port&nbsp;80<br><br>&nbsp;<br><br>#&nbsp;Access&nbsp;controls<br><br>####<br><br>&nbsp;<br><br>acl&nbsp;all&nbsp;src&nbsp;0.0.0.0/0.0.0.0<br><br>acl&nbsp;manager&nbsp;proto&nbsp;cache_object<br><br>acl&nbsp;localhost&nbsp;src&nbsp;127.0.0.1/255.255.255.255<br><br>acl&nbsp;Srvip&nbsp;&nbsp;&nbsp;dst&nbsp;211.100.23.0/24&nbsp;61.135.131.0/24&nbsp;202.108.33.32/24&nbsp;202.108.9.0/24&nbsp;202.108.12.0/24<br><br>acl&nbsp;Srvdm&nbsp;&nbsp;&nbsp;dstdomain&nbsp;&nbsp;.sina.com&nbsp;.sohu.com&nbsp;.163.com&nbsp;.tom.com<br><br>acl&nbsp;to_localhost&nbsp;dst&nbsp;127.0.0.0/8&nbsp;61.135.170.231/255.255.255.255<br><br>acl&nbsp;purgehost&nbsp;src&nbsp;&nbsp;127.0.0.0/8&nbsp;61.135.170.231/255.255.255.255<br><br>acl&nbsp;purgemethod&nbsp;method&nbsp;PURGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>acl&nbsp;SSL_ports&nbsp;port&nbsp;443&nbsp;563<br><br>acl&nbsp;Safe_ports&nbsp;port&nbsp;80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;http&nbsp;&nbsp;&nbsp;&nbsp;<br><br>acl&nbsp;Safe_ports&nbsp;port&nbsp;81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;http&nbsp;&nbsp;&nbsp;<br><br>acl&nbsp;CONNECT&nbsp;method&nbsp;CONNECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;<br><br>###always_direct&nbsp;allow&nbsp;Srvdm<br><br>###never_direct&nbsp;allow&nbsp;!Srvdm<br><br>http_access&nbsp;allow&nbsp;manager&nbsp;localhost<br><br>http_access&nbsp;deny&nbsp;manager<br><br>http_access&nbsp;allow&nbsp;purgemethod&nbsp;purgehost<br><br>http_access&nbsp;deny&nbsp;!Safe_ports<br><br>http_access&nbsp;deny&nbsp;CONNECT&nbsp;all<br><br>http_access&nbsp;allow&nbsp;localhost<br><br>http_access&nbsp;allow&nbsp;Srvip<br><br>http_access&nbsp;allow&nbsp;Srvdm<br><br>http_access&nbsp;deny&nbsp;all<br><br>#&nbsp;http_reply_access&nbsp;allow&nbsp;all<br><br>icp_access&nbsp;deny&nbsp;all<br><br><br>#透明代理设置<br><br>httpd_accel_port&nbsp;80<br><br>httpd_accel_host&nbsp;virtual<br><br>httpd_accel_single_host&nbsp;off<br><br>httpd_accel_with_proxy&nbsp;on<br><br>httpd_accel_uses_host_header&nbsp;on<br><br>&nbsp;<br><br>&nbsp;<br><br>#&nbsp;Miscellaneous<br><br><br>tcp_recv_bufsize&nbsp;4096&nbsp;bytes<br><br>client_db&nbsp;off<br><br><br>#&nbsp;reload_into_ims&nbsp;off<br></p>]]></description></item>
</channel>
</rss>