<?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>绿野仙踪 &#187; 我的网站</title>
	<atom:link href="http://w.wkdisk.cn/category/code/mywebsite/feed/" rel="self" type="application/rss+xml" />
	<link>http://w.wkdisk.cn</link>
	<description>仍在路上</description>
	<lastBuildDate>Mon, 18 Dec 2023 16:50:17 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1</generator>
	<item>
		<title>nginx 图形化状态</title>
		<link>http://w.wkdisk.cn/nginx-status-png/</link>
		<comments>http://w.wkdisk.cn/nginx-status-png/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 01:47:33 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rrdtool]]></category>

		<guid isPermaLink="false">http://www.wangjian.info/?p=287</guid>
		<description><![CDATA[    前段时间弄了mrtg的监控和AWStats 的日志处理，并和nginx状态、xcache状态、mysq [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>    前段时间弄了<a href="http://www.wangjian.info/archives/centos5-mrtg-status.html" target="_blank">mrtg的监控</a>和<a href="http://www.wangjian.info/archives/awstats-install-nginx.html" target="_blank">AWStats 的日志处理</a>，并和nginx状态、xcache状态、mysql管理等整合到了一起，通过status.k12zy.com来访问。</p>
<p>    因为nginx状态是文字的没什么直观性，看到有弄成图形化的统计很直观，试着做了下，效果还不错。</p>
<p>    首先下载pl文件，<a href="http://www.wangjian.info/uploads/2009/01/rrd_nginxpl.txt">rrd_nginx.pl.txt</a>，将其txt扩展名去掉修改如下部分。</p>
<blockquote><p>#!/usr/bin/perl<br />
use RRDs;<br />
use LWP::UserAgent;</p>
<p># define location of rrdtool databases<br />
my $rrd = &#8216;/opt/rrd';<br />
# define location of images<br />
my $img = &#8216;/opt/rrd/html';<br />
# define your nginx stats URL<br />
my $URL = <a href="http://your-domain.com/nginx_status">http://your-domain.com/nginx_status</a>;</p></blockquote>
<p>另外安装rrdtool，我在centos里通过三方的yum安装的rrdtool，和perl的rrd的模块。</p>
<p>然后定义cron自动运行，其实这个pl里面有两个内容一个是获取nginx的文本状态信息并存到rrd的数据，然后生成图片，所以可以把这两个内容分开比如每5分钟获取一次数据，一个小时生成一次图片节省系统资源，但是实际运行看来差别不大。</p>
<p>下面是效果图。<span id="more-287"></span></p>
<p><a class="thickbox" href="/wp-content/uploads/2009/01/2.jpg"><img class="aligncenter size-full wp-image-289" title="nginx 连接状态图" src="/wp-content/uploads/2009/01/2.jpg" alt="nginx 连接状态图" width="600" height="587" /></a><br />
这个是mrtg的效果图</p>
<p style="text-align: center;"><a class="thickbox" href="/wp-content/uploads/2009/01/e69caae6a087e9a298-1.jpg"><img class="aligncenter size-full wp-image-290" title="mrtg状态" src="/wp-content/uploads/2009/01/e69caae6a087e9a298-1.jpg" alt="mrtg状态" width="560" height="448" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/nginx-status-png/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>nginx X-Accel-Redirect 文件下载控制</title>
		<link>http://w.wkdisk.cn/nginx-x-accel-redirect/</link>
		<comments>http://w.wkdisk.cn/nginx-x-accel-redirect/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 17:21:27 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">/?p=232</guid>
		<description><![CDATA[原来是用的 NginxHttpAccessKeyModule 这个nginx的插件，效果可以，但是对下载控制有 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>原来是用的 NginxHttpAccessKeyModule 这个nginx的插件，效果可以，但是对下载控制有些吃力，比如下载次数或之前的下载减分等都不太好做，近来发现了个方法，还是延续之前通过动态程序读取文件内容再转发给用的的方法，但是读取文件内容的工作就从动态程序转到的web服务器，对动态程序的性能是一个极大的解放。</p>
<p>很多服务器都有这个功能，apache可以通过外部mod来实现。<br />
lighttpd X-Sendfile<br />
nginx X-Accel-Redirect</p>
<p>我用的是nginx具体实现方法</p>
<p><span style="color: #3366ff;">nginx conf</span></p>
<blockquote><p>location /down{<br />
internal;<br />
alias /www/down;<br />
}</p></blockquote>
<p>internal为允许nginx读取文件内容，但是外部无法访问</p>
<p><span style="color: #3366ff;">php内</span></p>
<blockquote><p>&lt; ?php<br />
// Get requested file name<br />
$path = $_GET[&#8220;path&#8221;];</p>
<p>//所有你需要在下载前做的东西</p>
<p>header(&#8220;X-Accel-Redirect: /down/&#8221; . $path);<br />
?&gt;</p></blockquote>
<p>参考：http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/lang/en/</p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/nginx-x-accel-redirect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在centos5.2下配置mrtg监控服务器状态</title>
		<link>http://w.wkdisk.cn/centos5-mrtg-status/</link>
		<comments>http://w.wkdisk.cn/centos5-mrtg-status/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 02:03:39 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">/?p=214</guid>
		<description><![CDATA[在sun下编译过mrtg，图形化显示网络流量，很好用。 在centos下可以直接用yum来安装mrtg，配置比 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>在sun下编译过mrtg，图形化显示网络流量，很好用。</p>
<p>在centos下可以直接用yum来安装mrtg，配置比较复杂下面是简单的记录</p>
<p><span style="color: #3366ff;">1.yum安装</span></p>
<p>yum install net-snmp net-snmp-devel net-snmp-utils mrtg</p>
<p><span style="color: #3366ff;">2.snmp配置</span></p>
<p>由于mrtg的统计都是通过snmp来做的，所以一般有错误的话都是snmp没有配置好，从网上学习了一个配置文件，可供参考</p>
<blockquote><p>vi /etc/snmp/snmpd.conf<br />
com2sec local localhost private<br />
com2sec mynet 192.168.16.0/24 public<br />
com2sec public default public</p>
<p>group mygroup v1 mynet<br />
group mygroup v2c mynet<br />
group mygroup usm mynet<br />
group local v1 local<br />
group local v2c local<br />
group local usm local<br />
group public v1 public<br />
group public v2c public<br />
group public usm public</p>
<p>view all included .1 80</p>
<p>access mygroup &#8220;&#8221; any noauth exact mib2 none none<br />
access public &#8220;&#8221; any noauth exact all none none<br />
access local &#8220;&#8221; any noauth exact all all all</p>
<p>syslocation Right here, right now.<br />
syscontact Me<br />
proc mountd<br />
proc ntalkd 4<br />
proc sendmail 10 1<br />
disk / 9689<br />
disk /export/hd3 153327<br />
load 12 14 14</p></blockquote>
<p>修改完毕后重启 service snmpd start</p>
<p><span style="color: #3366ff;">3.配置mrtg</span><br />
制作配置文件：cfgmaker –global &#8216;WorkDir: /var/www/mrtg&#8217;–output /etc/mrtg/mrtg.cfg <a href="mailto:public@127.0.0.1">public@127.0.0.1</a></p>
<p>生成网页：indexmaker -output=/var/www/mrtg/index.html -title=”k12zy.com status” /etc/mrtg/mrtg.cfg</p>
<p>MRTG除了统计流量之外，还可以根据snmp来统计CPU、UPTIME、内存、磁盘使用量等等，具体配置可以参考我下面提供的链接或者下面的mrtg配置文件。</p>
<p>配置结束后启动env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg 启动三次，因为数据文件的原因前两次会报错，不用理会第三次就好了。</p>
<p><span style="color: #3366ff;">4.配置web服务器</span></p>
<p><span style="color: #000000;">配置自己的web服务器将主目录指向WorkDir，可以设置相关的权限之类的，然后通过浏览器访问就行。</span></p>
<p><span style="color: #3366ff;">5.配置自动运行</span></p>
<p><span style="color: #000000;">mrtg的运作方式是定时运行，每次运行生成各统计的图片和数据。即他生成的东西都是静态的，但需要经常定时运行。</span></p>
<p>加入corn 每5分钟运行一次，基本占不了什么资源。</p>
<blockquote><p>crontab -e<br />
<span style="color: #800000;"><span style="color: #000000;">*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg</span></span></p></blockquote>
<p>下面是我的mrtg的配置文件，包含cpu 内存 硬盘等 大家可以参考。关于硬盘需在snmp里设置好，上面配置文件里的disk / 9689，其中9689这个磁盘大小是根据df -am中的数据来设置的。<span id="more-214"></span></p>
<blockquote><p># Created by<br />
# /usr/bin/cfgmaker &#8211;global &#8216;WorkDir: /export/web/www/status&#8217; &#8211;output /etc/mrtg/mrtg.cfg <a href="mailto:public@127.0.0.1">public@127.0.0.1</a></p>
<p>EnableIPv6: no<br />
WorkDir: /export/web/www/status<br />
Language: gb2312</p>
<p>### Interface 2 &gt;&gt; Descr: &#8216;eth0&#8242; | Name: &#8216;eth0&#8242; | Ip: &#8216;222.132.76.204&#8217; | Eth: &#8217;00-1e-4f-36-d1-23&#8242; ###</p>
<p>Target[127.0.0.1_2]: 2:public@127.0.0.1:<br />
SetEnv[127.0.0.1_2]: MRTG_INT_IP=&#8221;222.132.76.204&#8243; MRTG_INT_DESCR=&#8221;eth0&#8243;<br />
MaxBytes[127.0.0.1_2]: 12500000<br />
Title[127.0.0.1_2]: 公网 &#8212; k12zy.com<br />
PageTop[127.0.0.1_2]: &lt;h1&gt;公网 &#8212; k12zy.com&lt;/h1&gt;<br />
&lt;div id=&#8221;sysdetails&#8221;&gt;<br />
&lt;table&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Description:&lt;/td&gt;<br />
&lt;td&gt;eth0 &lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;ifType:&lt;/td&gt;<br />
&lt;td&gt;ethernetCsmacd (6)&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;ifName:&lt;/td&gt;<br />
&lt;td&gt;eth0&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Max Speed:&lt;/td&gt;<br />
&lt;td&gt;12.5 MBytes/s&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Ip:&lt;/td&gt;<br />
&lt;td&gt;222.132.76.204 ()&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;<br />
### Interface 3 &gt;&gt; Descr: &#8216;eth1&#8242; | Name: &#8216;eth1&#8242; | Ip: &#8216;192.168.16.99&#8217; | Eth: &#8217;00-1e-4f-36-d1-25&#8242; ###</p>
<p>Target[127.0.0.1_3]: 3:public@127.0.0.1:<br />
SetEnv[127.0.0.1_3]: MRTG_INT_IP=&#8221;192.168.16.99&#8243; MRTG_INT_DESCR=&#8221;eth1&#8243;<br />
MaxBytes[127.0.0.1_3]: 125000000<br />
Title[127.0.0.1_3]: 内网 &#8212; k12zy.com<br />
PageTop[127.0.0.1_3]: &lt;h1&gt;内网 &#8212; k12zy.com&lt;/h1&gt;<br />
&lt;div id=&#8221;sysdetails&#8221;&gt;<br />
&lt;table&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Description:&lt;/td&gt;<br />
&lt;td&gt;eth1 &lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;ifType:&lt;/td&gt;<br />
&lt;td&gt;ethernetCsmacd (6)&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;ifName:&lt;/td&gt;<br />
&lt;td&gt;eth1&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Max Speed:&lt;/td&gt;<br />
&lt;td&gt;125.0 MBytes/s&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Ip:&lt;/td&gt;<br />
&lt;td&gt;192.168.16.99 ()&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;</p>
<p>########################### TCP Cons ######################################<br />
Target[tcpopen]: .1.3.6.1.2.1.6.9.0&amp;.1.3.6.1.2.1.6.9.0:public@127.0.0.1<br />
Options[tcpopen]: nopercent,growright,gauge,noinfo<br />
Title[tcpopen]: TCP连接数<br />
PageTop[tcpopen]:&lt;H1&gt;TCP连接数&lt;/H1&gt;<br />
#Open TCP connections<br />
MaxBytes[tcpopen]: 1000000<br />
YLegend[tcpopen]: # conns<br />
ShortLegend[tcpopen]: 连接<br />
LegendI[tcpopen]: 连接:<br />
LegendO[tcpopen]:<br />
Legend1[tcpopen]: 打开的连接</p>
<p>######################## Load Avarage ####################################<br />
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt<br />
Target[load]:.1.3.6.1.4.1.2021.10.1.3.2&amp;.1.3.6.1.4.1.2021.10.1.3.3:public@127.0.0.1 * 100<br />
WithPeak[load]: my<br />
MaxBytes[load]: 10000<br />
Title[load]: SYSTEM LOAD AVG.<br />
Options[load]: growright,gauge,integer,nopercent<br />
YLegend[load]: Load Avarage<br />
LegendI[load]: 5 min:<br />
LegendO[load]: 15 min:<br />
Legend1[load]: Load average for 5 Min<br />
Legend2[load]: Load average for 15 Min<br />
Legend3[load]: Max load average for 5 Min<br />
Legend4[load]: Max Load average for 15 Min<br />
YTicsFactor[load]: 0.01<br />
#ShortLegend[load]: _<br />
PageTop[load]:&lt;H1&gt;系统平均负载&lt;/H1&gt;<br />
#LOAD AVERAGE<br />
######################### CPU ############################################<br />
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt<br />
Target[cpu]:ssCpuRawUser.0&amp;ssCpuRawUser.0:public@localhost + ssCpuRawSystem.0&amp;ssCpuRawSystem.0:public@localhost + ssCpuRawNice.0&amp;ssCpuRawNice.0:public@localhost<br />
RouterUptime[cpu]:public@localhost<br />
MaxBytes[cpu]: 100<br />
Title[cpu]: CPU Load<br />
PageTop[cpu]:&lt;H1&gt;CPU 平均负载&lt;/H1&gt;<br />
#Carga de CPU %<br />
Unscaled[cpu]: ymwd<br />
ShortLegend[cpu]: %<br />
YLegend[cpu]: Uso de CPU<br />
Legend1[cpu]: CPU Activa % (Carga)<br />
Legend2[cpu]:<br />
Legend3[cpu]:<br />
Legend4[cpu]:<br />
LegendI[cpu]: Active<br />
LegendO[cpu]:<br />
Options[cpu]: growright,nopercent</p>
<p>######################## CPU UsrSys ####################################<br />
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt<br />
Target[usrsys]:ssCpuRawUser.0&amp;ssCpuRawSystem.0:public@localhost<br />
RouterUptime[usrsys]:public@localhost<br />
MaxBytes[usrsys]: 100<br />
Title[usrsys]: CPU LOAD<br />
PageTop[usrsys]:&lt;H1&gt;用户+系统CPU占用率&lt;/H1&gt;</p>
<p>#CPU (user and system) Load %<br />
Unscaled[usrsys]: ymwd<br />
ShortLegend[usrsys]: %<br />
YLegend[usrsys]: CPU Utilization<br />
Legend1[usrsys]: 用户 CPU % (Load)<br />
Legend2[usrsys]: 系统 CPU % (Load)<br />
Legend3[usrsys]:<br />
Legend4[usrsys]:<br />
LegendI[usrsys]: 用户<br />
LegendO[usrsys]: 系统<br />
Options[usrsys]: growright,nopercent</p>
<p>Target[memory]: .1.3.6.1.2.1.25.2.3.1.6.2&amp;.1.3.6.1.2.1.25.2.3.1.6.3:public@localhost:<br />
Options[memory]: gauge,growright<br />
Directory[memory]: mem<br />
MaxBytes1[memory]: 4045336<br />
MaxBytes2[memory]: 2097152<br />
Kmg[memory]: k,M,G,T,P<br />
Kilo[memory]: 1024<br />
Unscaled[memory]: dwym<br />
YLegend[memory]: Bytes<br />
ShortLegend[memory]: B<br />
Legend1[memory]: Mem (Bytes)<br />
Legend2[memory]: Swap(Bytes)<br />
LegendI[memory]: Mem :<br />
LegendO[memory]: Swap:<br />
Title[memory]: 内存使用量[Mem+Swap]<br />
PageTop[memory]: &lt;H1&gt;内存使用量[Mem+Swap]&lt;/H1&gt;<br />
Target[process]: .1.3.6.1.2.1.25.1.6.0&amp;.1.3.6.1.2.1.25.1.6.0:public@localhost:<br />
Options[process]: gauge,nopercent,growright<br />
Directory[process]: process<br />
MaxBytes[process]: 1000<br />
YLegend[process]: Processes<br />
ShortLegend[process]: 个<br />
Legend1[process]: 系统进程数(个)<br />
Legend2[process]:<br />
LegendI[process]: 进程数:<br />
LegendO[process]:<br />
Title[process]: 系统进程数[进程数]<br />
PageTop[process]: &lt;H1&gt;系统进程数[进程数]&lt;/H1&gt;</p>
<p>Target[disk]: .1.3.6.1.4.1.2021.9.1.8.1&amp;.1.3.6.1.4.1.2021.9.1.8.2:public@localhost:<br />
Options[disk]: gauge,growright<br />
Directory[disk]: disk<br />
MaxBytes1[disk]: 9921536<br />
MaxBytes2[disk]: 157006848<br />
Kmg[disk]: k,M,G,T,P<br />
Kilo[disk]: 1024<br />
Unscaled[disk]: dwym<br />
YLegend[disk]: Bytes<br />
ShortLegend[disk]: B<br />
Legend1[disk]: 系统盘已用空间<br />
Legend2[disk]: 数据盘已用空间<br />
LegendI[disk]: 系统已用:<br />
LegendO[disk]: 数据已用:<br />
Title[disk]: 硬盘空间[系统盘+数据盘]<br />
PageTop[disk]: &lt;h1&gt;硬盘空间[系统盘+数据盘]&lt;/h1&gt;</p></blockquote>
<p>效果图<br />
<a class="class=" href="/wp-content/uploads/2009/01/e69caae6a087e9a298-1.jpg"><img class="aligncenter size-medium wp-image-290" title="mrtg状态" src="/wp-content/uploads/2009/01/e69caae6a087e9a298-1-500x400.jpg" alt="mrtg状态" width="500" height="400" /></a></p>
<p>参考：<br />
<a href="http://blog.chinaunix.net/u/18377/showart.php?id=267406">http://blog.chinaunix.net/u/18377/showart.php?id=267406</a></p>
<p><a href="http://rootchen001.blog.163.com/blog/static/18799622200771724333211/">http://rootchen001.blog.163.com/blog/static/18799622200771724333211/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/centos5-mrtg-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx 防盗链插件 nginx-accesskey</title>
		<link>http://w.wkdisk.cn/nginx-accesskey/</link>
		<comments>http://w.wkdisk.cn/nginx-accesskey/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 16:07:12 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[我的网站]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">/?p=211</guid>
		<description><![CDATA[按照官方配置安装后都会出现错误，看了半天源码又在网上转了一圈找到了一个补丁，又出现编译错误，修改了源码才完成编 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>按照官方配置安装后都会出现错误，看了半天源码又在网上转了一圈找到了一个补丁，又出现编译错误，修改了源码才完成编译，试了一下功能很好用。</p>
<p><a href="http://www.ieesee.net:8080/~uingei/nginx-accesskey-2.0.3.diff.bz2">http://www.ieesee.net:8080/~uingei/nginx-accesskey-2.0.3.diff.bz2</a></p>
<div>下载上面的补丁文件，进入nginx的目录然后执行：</p>
<blockquote><p>
bzcat ../nginx-accesskey-2.0.3.diff.bz2 | patch -p1<br />
/configure &#8211;with-http_accesskey_module &#8230;<br />
make<br />
make install
</p></blockquote>
<div>我使用的是centos，编译时提示有未使用的变量 clcf，打开源码将 ngx_http_core_loc_conf_t       *clcf; 这句删掉，然后编译通过。</div>
<div>我配置的0.6.33 也没有问题</div>
<div>官方配置：<a href="http://wiki.codemongers.com/NginxHttpAccessKeyModule">http://wiki.codemongers.com/NginxHttpAccessKeyModule</a></div>
<div><a href="http://blog.chinaunix.net/u2/69948/showart_1163321.html">http://blog.chinaunix.net/u2/69948/showart_1163321.html</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/nginx-accesskey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>鼠标点击行为统计</title>
		<link>http://w.wkdisk.cn/web-mouse-click-statistics/</link>
		<comments>http://w.wkdisk.cn/web-mouse-click-statistics/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 12:04:28 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[我的网站]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[旅途记录]]></category>

		<guid isPermaLink="false">/?p=204</guid>
		<description><![CDATA[       尝试了一下鼠标点击行为统计，关于统计其实很简单，onclick触发行为通过后台的http请求将屏 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="TEXT-ALIGN: left">       尝试了一下鼠标点击行为统计，关于统计其实很简单，onclick触发行为通过后台的http请求将屏幕宽度、点击点的X、Y坐标点传到服务器。关键的问题是点击点的显示，由于用户分辨率都不同所得到的x、y点相对位置也不同。</p>
<p style="TEXT-ALIGN: left">      在实际应用中我们需要生成一个鼠标点击点和页面整合得到一张图片。那如何处理上面的相对位置的问题呢，我们现在有用户鼠标点击点的坐标和宽度，如何将所有的点转换为在一个统一分辨率下的坐标值，其实也不是他复杂，针对这个问题想了一个算法：</p>
<h1 style="text-align: center;">x¹=(w¹-(w/2-x))+x</h1>
<p style="text-align: right;">其中x¹为新左边点 w¹为新的分辨率宽度</p>
<p style="text-align: left;">    以上的解决办法只适合网页横向居中的情况，当然在局左的情况下根本也不用处理，靠右的情况下也很好处理，另外Y点在相同的页面上也是没有问题的。</p>
<p style="text-align: left;">    另一点考虑，是否可以按照板块来处理，比如我的网站里面类似的页面很多，如何将类似的页面结合起来统计，这就带来了页面竖向的问题，因为由于内容的多少的问题页面的高度并不相同，这就很难处理。那么是否可以这样，比如鼠标进入了这一预先设置好的区域内，则根据在这一区域内的相对位置来取得X、Y值，然后在后台将各个区域板块重新组合。</p>
<p style="text-align: left;">    都是想法，也没具体实现。下图是一个测试。</p>
<p style="text-align: center;"><a href="http://www.wangjian.info/wp-content/uploads/2008/11/e69caae6a087e9a298-1.jpg" class="thickbox"><img class="size-full wp-image-205  aligncenter" title="e69caae6a087e9a298-1" src="http://www.wangjian.info/wp-content/uploads/2008/11/e69caae6a087e9a298-1.jpg" alt="" width="500" height="426" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/web-mouse-click-statistics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx apache xcache 效果对比测试</title>
		<link>http://w.wkdisk.cn/nginx-vs-apche-with-xcache/</link>
		<comments>http://w.wkdisk.cn/nginx-vs-apche-with-xcache/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 16:52:56 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">/?p=163</guid>
		<description><![CDATA[安装后我进行了测试以下为测试结果 分别开启关闭xcache 运行两次ab -n 1000 http://bbs [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>安装后我进行了测试以下为测试结果<br />
分别开启关闭xcache 运行两次ab -n 1000 <a href="http://bbs.k12zy.com/forum-19-1.html">http://bbs.k12zy.com/forum-19-1.html</a></p>
<blockquote><p>Server Software:           <span style="color: #0000ff;">nginx/0.6.33</span><br />
Server Hostname:        bbs.k12zy.com<br />
Server Port:                  80<br />
Document Path:          /forum-19-1.html<br />
Document Length:      32118 bytes</p>
<p>Time taken for tests:     38.976547 seconds<br />
Requests per second:    25.66 [#/sec] (mean)<br />
Time per request:          38.977 [ms] (mean)<br />
Time per request:          38.977 [ms] (mean, across all concurrent requests)<br />
Transfer rate:                 814.16 [Kbytes/sec] received</p>
<p><span style="color: #ff0000;">Time taken for tests:     17.326479 seconds<br />
Requests per second:    57.72 [#/sec] (mean)<br />
Time per request:          17.326 [ms] (mean)<br />
Time per request:          17.326 [ms] (mean, across all concurrent requests)<br />
Transfer rate:                1831.47 [Kbytes/sec] received</span></p>
<p>那么apache服务器的效果如何呢，又做了测试</p>
<p>Server Software:        <span style="color: #0000ff;">Apache/2.2.3</span><br />
Server Hostname:        121.250.15.4<br />
Server Port:            80<br />
Document Path:          /forum-19-1.html<br />
Document Length:       32116 bytes</p>
<p><span style="color: #000080;">Time taken for tests:     32.138246 seconds<br />
Requests per second:    31.12 [#/sec] (mean)<br />
Time per request:          32.138 [ms] (mean)<br />
Time per request:          32.138 [ms] (mean, across all concurrent requests)<br />
Transfer rate:                 988.04 [Kbytes/sec] received</span></p>
<p><span style="color: #ff00ff;">Time taken for tests:     20.6633 seconds<br />
Requests per second:    49.98 [#/sec] (mean)<br />
Time per request:          20.007 [ms] (mean)<br />
Time per request:          20.007 [ms] (mean, across all concurrent requests)<br />
Transfer rate:                1587.17 [Kbytes/sec] received</span></p></blockquote>
<p> 其中红色为开启xcache的值</p>
<p>结果来看开启xcache肯定要快，至于apache和nginx的fastcgi来比较缺让人看的不清楚， 只能解释由于第一次测试的是nginx不开xcache可能在数据库端使其变慢，都以一次测试的值也不能算作科学统计，仅做为自己的测试吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/nginx-vs-apche-with-xcache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>安装 xcache 加速php</title>
		<link>http://w.wkdisk.cn/xcache-install/</link>
		<comments>http://w.wkdisk.cn/xcache-install/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 15:44:33 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">/?p=159</guid>
		<description><![CDATA[在服务器中安装了xcache，来加速php的运行。 关于xcache 可以查看 http://www.ibm. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>在服务器中安装了xcache，来加速php的运行。</p>
<p>关于xcache 可以查看 <a href="http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/">http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/</a></p>
<blockquote><p>yum install php-devel</p>
<p>wget <a href="http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz">http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz</a><br />
tar -xvf xcache-1.2.2.tar.gz<br />
cd xcache-1.2.2<br />
phpize</p>
<p>./configure &#8211;enable-xcache &#8211;enable-xcache-coverager<br />
make<br />
make install</p></blockquote>
<p>得到结果：<br />
Installing shared extensions:     /usr/lib/php/modules/<br />
将配置加入php.ini<br />
cat xcache.ini &gt;&gt; /etc/php.ini</p>
<p>编辑php.ini 将 xcache.so的路径改为  /usr/lib/php/modules/xcache.so<br />
重启fastcgi spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nobody -g nobody -f /usr/bin/php-cgi<br />
安装 XCache Administration<br />
修改php.ini xcache.admin.pass=&#8221;&#8221; 为md5(&#8220;密码&#8221;)的值</p>
<p>复制 admin 文件夹到web目录</p>
<p>浏览器中浏览</p>
<p>启用后居然不管用原来默认配置中xcache.size和xcache.var_size都是0M  改成合适的数值就好</p>
<p>参考：<a href="http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/">http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/xcache-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx 的配置</title>
		<link>http://w.wkdisk.cn/nginx-fastcgi-php-rewrite-config/</link>
		<comments>http://w.wkdisk.cn/nginx-fastcgi-php-rewrite-config/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 14:01:30 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">/?p=144</guid>
		<description><![CDATA[加入了php的支持，nginx使用的是fastcgi。 我使用的是centos5.2系统，其中已经通过yum安 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>加入了php的支持，nginx使用的是fastcgi。</p>
<p>我使用的是centos5.2系统，其中已经通过yum安装了php，因为不想再自己重新编译了就采用spawn-fcgi的方式来做fastcgi，spawn-fcgi包含在lighttpd，</p>
<blockquote><p>wget lighttpd</p>
<p>./configure;</p>
<p>make;</p>
<p>cp src/spawn-fcgi /usr/bin/spawn-fcgi</p>
<p>spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nobody -g nobody -f /usr/bin/php-cgi</p></blockquote>
<p>加入开机启动</p>
<p><span style="color: #3366ff;">nginx 配置</span></p>
<p>加入了rewrite来做永久链接</p>
<blockquote><p>server {<br />
listen 222.132.76.204:80;<br />
server_name <a href="http://www.wangjian.info">www.wangjian.info</a>;<br />
access_log  /export/hd1/weblog/gpsview.access.log  main;</p>
<p>location / {<br />
root /export/hd1/web/blog/;<br />
index index.php;</p>
<p>if (-f $request_filename/index.html){<br />
   rewrite (.*) $1/index.html break;<br />
} <br />
if (-f $request_filename/index.php){<br />
   rewrite (.*) $1/index.php;<br />
}<br />
if (!-f $request_filename){<br />
   rewrite (.*) /index.php;<br />
}<br />
location ~ .php$ {<br />
fastcgi_pass 127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
fastcgi_param SCRIPT_FILENAME /export/hd1/web/blog$fastcgi_script_name;<br />
include fastcgi_params;<br />
}<br />
}<br />
}</p></blockquote>
<p>OK了，经过感觉，速度好像是快了点。继续测试中。</p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/nginx-fastcgi-php-rewrite-config/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]apache 的防盗链</title>
		<link>http://w.wkdisk.cn/apache-against-link/</link>
		<comments>http://w.wkdisk.cn/apache-against-link/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 16:55:17 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[备忘录]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[盗链]]></category>

		<guid isPermaLink="false">/?p=139</guid>
		<description><![CDATA[NginxHttpAccessKeyModule nginx的防盗链插件 直接用HTTP服务器下载也不是很容易 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://wiki.codemongers.com/NginxHttpAccessKeyModule"><span style="color: #07519a;">NginxHttpAccessKeyModule</span></a> nginx的防盗链插件</p>
<p>直接用HTTP服务器下载也不是很容易的事。最开始在IIS里面配置，IIS只能设定最大下载速度和最大连接数，这对于一些使用下载工具一来就开50+线程霸道下载的朋友明显是防不住的。网上搜了N久就发现一个用Delphi写的看不懂的ISAPI Filter以及别的收费软件若干。试过之后都起不了作用，也便放弃了，最后发现Apache有这些开源的功能模块，最终打造出完美限制的HTTP下载服务器。</p>
<p>首先说说完美限制的意思：防盗链、限制客户端下载线程数，限制下载带宽。下面一一介绍怎么在Apache里面实现这些功能。</p>
<p><strong><span style="color: #3366ff;">防盗链</span></strong></p>
<p>传统的防盗链都是通过Referer来判断用户来路的，不过这样的方法对于下载工具来说形同虚设，因为现在的下载工具早就能伪造Referer了。</p>
<p>现在一些流行的防盗链的方式都是用在浏览页面的时候产生一个随机验证码，在用户点击连接的时候服务器会验证这个验证码是否有效从而决定是否允许下载。或者就是用某些方法把文件实际地址进行伪装。不过我觉得这些都不怎么好用，我用了一个简单有效的方式来实现防盗链。</p>
<p>其实就是用Cookie，配合Apache的URL Rewrite模块很简单的就能实现防盗链下载。</p>
<p>首先在浏览页面的时候，会向客户端发送一个特别的Cookie，例如“Site=LeiDown.Com“，盗链而来的将没有这个Cookie。</p>
<p>在Apache的httpd.conf文件里面搜索：</p>
<blockquote><p>#LoadModule rewrite_module modules/mod_rewrite.so</p></blockquote>
<p>把它前面的#去掉，再找到&lt;Directory /&gt;块，在里面加入类似如下代码：</p>
<blockquote><p>&lt;Directory /&gt;<br />
     # Other configurations …<br />
    RewriteEngine On # 启动URL Rewrite引擎<br />
   RewriteCond %{HTTP_COOKIE} !^.*(?:Site=LeiDown.Com).*$ # 对于Cookie里面没有特殊记录的请求进行重定向<br />
   RewriteRule ^.*$ error.html # 将非法访问重定向到错误页面<br />
&lt;/Directory&gt;</p></blockquote>
<p>这样如果一个盗链而来的请求将会因为没有特殊Cookie而被重定向到错误页面，就算实际地址暴露也不怕。至于这个Cookie的内容是什么以及有效时间完全可以由管理员自己来设定，也就是说下载工具也没法伪造，从而防止了服务器资源被盗链的危险。</p>
<p><strong><span style="color: #3366ff;">限制客户端多线程下载</span></strong></p>
<p>限制多线程现在需要用到一个Apache的扩展模块mod_limitipconn，这里是作者的官方网站<a href="http://dominia.org/djao/limitipconn2.html">http://dominia.org/djao/limitipconn2.html</a>，先下载适合自己版本的模块文件到Apache安装目录下的modules目录下面，然后在httpd.conf文件中搜索：</p>
<blockquote><p>#LoadModule status_module modules/mod_status.so</p></blockquote>
<p>把它前面的#去掉，再加入：</p>
<blockquote><p>ExtendedStatus On<br />
LoadModule limitipconn_module modules/mod_limitipconn.dll # 如果你下载的不是Win版，请把后面的文件名改为你所下载的文件名<br />
&lt;IfModule mod_limitipconn.c&gt;<br />
   &lt;Location /&gt; # 这里表示限制根目录，即全部限制，可以根据需要修改<br />
   MaxConnPerIP 2 # 这里表示最多同时两个线程<br />
   NoLimit html/* # 这里表示html目录下不受限制<br />
   &lt;/Location&gt;<br />
&lt;/IfModule&gt;</p></blockquote>
<p>这样来自同一客户端的超过2个的线程请求将被拒绝，从而限制了客户端的多线程下载。</p>
<p><strong><span style="color: #3366ff;">限制下载带宽</span></strong></p>
<p>这个同样需要扩展模块支持，模块是mod_bw，在作者的官方网站<a href="http://ivn.cl/apache/">http://ivn.cl/apache/</a>可以下载到。同样也是放入modules目录下面，然后在httpd.conf文件中加入：</p>
<blockquote><p>LoadModule bw_module modules/mod_bw.dll</p></blockquote>
<p>再找到&lt;Directory /&gt;块，加入：</p>
<blockquote><p>&lt;Directory /&gt;<br />
   # Other configurations …<br />
   BandwidthModule On # 启动带宽限制<br />
    ForceBandwidthModule On # 启动带宽限制<br />
     MaxConnection all 2000 # 最大连接数2000<br />
   Bandwidth all 200000 # 单个客户端最大带宽200KB<br />
&lt;/Directory&gt;</p></blockquote>
<p>这样限制了同时最多2000个连接数，每个客户端最大200KB的下载带宽。</p>
<p>到此，我们的完美限制的HTTP下载服务器就配置完成了，重新启动你的Apache这些功能便能生效了。因为Apache和这些模块都是开源免费的，我们不需要为此掏一分钱，不用去购买那些第三方的软件，只是需要多去了解一下这些软件的使用说明。不要一切都祈祷有现成美好的东西，自己动手做一次会有不一样的收获。</p>
<tbody>
<tr>
<td>RewriteLock</td>
<td>RewriteLock file-path</td>
<td>None</td>
<td>设置RewriteMap程序的同步锁文件</td>
<td>要求是本地文件，此文件只对rewriting map-program有效。</td>
</tr>
<tr>
<td>RewriteMap</td>
<td>RewriteMap MapName MapType:MapSource</td>
<td>Notused per default</td>
<td>定义重写影射</td>
<td>具体说明参见<a href="http://www.gpsview.com.cn/wp-admin/link.php?url=http://hedong.3322.org%2Farchives%2F000346.html"><span style="color: #003366;">文档</span></a></td>
</tr>
<tr>
<td>RewriteBase</td>
<td>RewriteBase URL-path</td>
<td>physical directory path</td>
<td>设置目录范围内重写的基本URL</td>
<td>具体说明参见<a href="http://www.gpsview.com.cn/wp-admin/link.php?url=http://hedong.3322.org%2Farchives%2F000346.html"><span style="color: #003366;">文档</span></a></td>
</tr>
<tr>
<td>RewriteCond</td>
<td>RewriteCond TestString CondPattern</td>
<td>None</td>
<td>定义规则条件</td>
<td>具体说明参见<a href="http://www.gpsview.com.cn/wp-admin/link.php?url=http://hedong.3322.org%2Farchives%2F000345.html"><span style="color: #003366;">文档</span></a></td>
</tr>
<tr>
<td>RewriteRule</td>
<td>RewriteRule Pattern Substitution</td>
<td>None</td>
<td>定义重写规则</td>
<td>具体说明参见<a href="/wp-admin/link.php?url=http://hedong.3322.org%2Farchives%2F000344.html"><span style="color: #003366;">文档</span></a></td>
</tr>
</tbody>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/apache-against-link/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vmare ESX 下centos的安装</title>
		<link>http://w.wkdisk.cn/vmare-esx-centos-install/</link>
		<comments>http://w.wkdisk.cn/vmare-esx-centos-install/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 02:43:46 +0000</pubDate>
		<dc:creator><![CDATA[billy]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[我的网站]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[esx]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">/?p=132</guid>
		<description><![CDATA[在虚拟机安装了centos，由于他虚拟的Inter e1000的网卡不支持centos（虽然支持red hat [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>在虚拟机安装了centos，由于他虚拟的Inter e1000的网卡不支持centos（虽然支持red hat e5），只能用较低级的100M网卡了。</p>
<p>配置mysql和apache，原来很简单的事情，重装了N遍配置了半天都有问题，权限的问题，最后找到了原来是SElinux 的问题，关闭后完全没问题。这和vista的UCA一样自己找自己的麻烦，虽然有时候也挺有用的。</p>
<p>nginx，原来在SUN服务器上装了nginx，为了验证esx虚拟机的稳定、强壮决定把nginx装到linux里，测试一下虚拟机在大访问量下的性能。</p>
<p>centos自带的pcre版本比较低，自己装一个吧</p>
<p>wget <a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz">ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz</a></p>
<p>编译参数：</p>
<p>./configure &#8211;with-poll_module &#8211;with-http_ssl_module &#8211;with-http_realip_module &#8211;with-http_flv_module &#8211;with-http_stub_status_module</p>
]]></content:encoded>
			<wfw:commentRss>http://w.wkdisk.cn/vmare-esx-centos-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
