March 28, 2011
使用apache的rewrite功能来防迅雷
"\u003cp\u003e不知道为什么,本来不受重视的L’Yun,却一直多灾多难,前几天空间呗停掉了,一个很以为的原因,每天将近9G的流量,晕死了,最多的一天才只有6个IP,但竟然有这么大的流量。后来查看了下日志,竟然是两首MP3引起的,每一秒钟都有人在下载。刚开始以为是百度干的,但是后来看了下在百度的位置,还不至于达到那么大的流量,然后自然而然的就想到迅雷了,看看别人的文章,可以肯定下,迅雷是个流氓!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e解决方案:\u003c/strong\u003e\n1、对服务器的攻击屏蔽后,不用理会,不会造成太大影响。\n2、被百度收录的是一部分MP3,因为不希望不访问网站就直接从后台下载网站的mp3,于是增加搜索引擎访问限制。在网站根目录下放置robots.txt,内容如下:\nUser-agent: Baiduspider\nDisallow: /****\n*表示不允许百度搜索引擎收录的路径。相对于百度,雅虎、MSN和Google的搜索引擎机器人没有那么流氓,所以不需要屏蔽。\u003c/p\u003e\n\u003cp\u003e3、对付迅雷。\n相对于有些流氓的百度搜索引擎来说,迅雷就是恶霸了。\n对于小网站站长来说,迅雷的分布式下载几乎是一种灾难。尽管迅雷给广大普通用户带来快捷方便,但给小服务器的负载带来严重灾难。 …\u003c/p\u003e"
March 28, 2011
windows 服务器 Apache 防止ddos攻击模块
"\u003cp\u003e为了防HTTP DoS或DDos攻击,我们可能会对服务器添加很多种防护产品,可能会购买专业的DDoS硬件防火墙,当然,目前并没有一种很成熟的技术能完全封锁住DDoS攻击。但如果对于小型网站服务器来说,Apache的evasive模块是比较简单的处理方法,原理也很简单,判断一段时间内,某个IP访问的次数是否过快,如果过快,就返回403错误。\u003c/p\u003e\n\u003cp\u003e但是官方的evasive模块发布的是源代码和linux下的RPM压缩包,虽然可以在windows使用源代码编译出这个模块来,但是由于windows系统本身的原因,几乎不会在默认的情况下安装C语言的编译环境,如果需要安装这个编译环境要安装非常多而繁杂的软件,操作起来非常不便。但是在LINUX系统下编译好的文件却不能在WINDOWS下使用,这是两个系统核心的区别,肯定不能使用。\u003c/p\u003e\n\u003cp\u003e我在别的网站找到了WINDOWS下用的编译好的DLL文件,方便使用WINDOWS系统,同时又是Apache 2.2服务器软件的站长们使用。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e安装方法:\u003c/strong\u003e\n1、下载附件中的压缩包,解压并拷贝mod_dosevasive22.dll到Apache安装目录下的modules目录(当然也可 …\u003c/p\u003e"
March 24, 2011
[教程]windows下安装awstats来分析apache的访问日志
"\u003cp\u003e下面的教程是在windows2003服务器下安装配置的,由于awstats是由perl程序写的,所以需要我们在安装awstats以前,需要安装ActivePerl( \u003ca href=\"http://www.activestate.com/\"\u003ehttp://www.activestate.com/\u003c/a\u003e),这里安装的为 v5.10.1版本.安装路径为d:\\perl,记得要启动httpd.conf文件里的LoadModule cgi_module modules/mod_cgi.so模块.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一.下载软件包\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e从官方网站( \u003ca href=\"http://awstats.sourceforge.net/\"\u003ehttp://awstats.sourceforge.net/\u003c/a\u003e)下载最新的awstats压缩包(也可以下载.exe的安装文件),这里下载的是awstats-7.0.zip压缩包.将其解压到D:\\site\\awstats-7.0目录里.\n\u003cstrong\u003e二.初始化配置环境\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e打开D:/site/awstats-7.0/tools文件夹,双击执行awstats_configure.pl,根据提示输入自己apache的安装环境和httpd.conf文件所在的位置,以下为我本机的环境,如图所示:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/03/awstats_install_1.png\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/awstats_install_1.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/03/awstats_install_2.png\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/awstats_install_2.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e回车后,提示\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/03/awstats_install_3.png\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/awstats_install_3.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这里直接输入”n”,我们手动来配置就可以了,接着是两次回车就可以 …\u003c/p\u003e"
March 24, 2011
css问题,ie6下有时候边框断断续续bug的解决l办法
"\u003cp\u003ee6.0下面经常会出现border边框断断续续的问题,初学div+css 的一般不会用遇到这个问题,不过等深一步了解了div之后自然会经常碰到这种问题了,因为初学者不会偷懒,等我们觉得用的很熟了,各种浏览器都能很方便的 兼容之后就会出现这种问题,我有很多同事都碰到过这种问题,其实解决办法很简单,我先简单描述一下边框断裂的效果.\u003c/p\u003e\n\u003cp\u003e在浏览器下一刷新边框是全的,再以刷新边框就会有断开,什么原因呢,很懊恼的事情,网上一搜也没有答案,下面我就告诉大家解决的方法,其实他是有原因的, 原因就是你的外层有边框,边框层里面嵌套的层里面有浮动,浮动这个最令人懊恼的东西经常会出问题,由于这个原因会引起ie6下面边框断裂,解决办法就是在 外层加 zoom:1; 或者 heigth:100%; 很容易就解决了这个问题。\u003c/p\u003e\n\u003cp\u003e表现状况:窗口的边框时隐时现。。。\u003c/p\u003e\n\u003cp\u003e发生情况:\u003c/p\u003e\n\u003cp\u003e网上说是在一个容器中有元素浮动时容易出现,自己感觉有时内部元素把容器撑开时也会看不到边框。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e解决办法:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e如果按网上说的是因为浮动的原因的话,那么添加清除浮动则应试可以正常解决。\u003c/p\u003e\n\u003cp\u003e另外网上的解决办法是:给窗口设置{zoom:1} or { …\u003c/p\u003e"
March 23, 2011
遍历memcache中已缓存的key
"\u003cp\u003e最近需要做一个缓存管理的功能。其中有一个需要模糊匹配memcached的key然后进行删除匹配上的key对应的数据。\u003c/p\u003e\n\u003cp\u003e难点在于memcache 没有提供模糊匹配key删除缓存的功能,也没有提供遍历memcache key的功能。在网上search了下,\u003c/p\u003e\n\u003cp\u003e点击10个连接有9个都是一篇文章的copy。网上最流行的方法发现key不能正确的获得。baidu google 全用上了就是没有解决。。。\u003c/p\u003e\n\u003cp\u003e最后还是抱着试试的心态,终于把问题给解决了。废话少说。说说,我实现的代码:\u003c/p\u003e\n\u003cp\u003e遍历memcache的可以需要有一下几个步骤:\u003c/p\u003e\n\u003cp\u003e1、通过使用memcache 内置方法Memcache::getExtendedStats,首先获得items信息。\u003c/p\u003e\n\u003cp\u003e最后得到的解决类似与\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\n 1 $memcache = new Memcache();\n 2\n 3 $all_items = $memcache-\u0026gt;getExtendedStats(\u0026#39;items\u0026#39;);\n 4\n 5 var_export($all_items);\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\n 1 array (\n 2 …\u003c/code\u003e\u003c/pre\u003e"
March 23, 2011
windows环境下memcache服务器使用经验
"\u003cp\u003e将memcache服务器安装包解压到C:\\memcached文件夹后,使用cmd命令窗口安装。\u003c/p\u003e\n\u003cp\u003e1\u0026gt;开始\u0026gt;运行:CMD(确定)\u003c/p\u003e\n\u003cp\u003e2\u0026gt;cd C:\\memcached(回车)\u003c/p\u003e\n\u003cp\u003e3\u0026gt;memcached -d install(回车 这步执行安装)\u003c/p\u003e\n\u003cp\u003e4\u0026gt;memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口)\u003c/p\u003e\n\u003cp\u003e此时memcache服务器已经可以正常使用了。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ememcache服务器安全:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMemcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄 露被其他无关人员查看,重则服务器被入侵,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。 为了安全起见,做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。\u003c/p\u003e\n\u003cp\u003e现在就关于修改memcache服务器配置的问题说明如下:\u003c/p\u003e\n\u003cp\u003e1\u0026gt;用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放 …\u003c/p\u003e"
March 23, 2011
freebsd+php+memcache、memcached安装和使用
"\u003cp\u003e来源: \u003ca href=\"http://www.lifecrunch.biz/archives/55\"\u003ehttp://www.lifecrunch.biz/archives/55\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"memcache-介绍\"\u003eMemcache 介绍\u003c/h2\u003e\n\u003cp\u003ememcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图 像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作 者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时 访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式 cache的理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。\u003c/p\u003e\n\u003cp\u003eMemcache官方网站: …\u003c/p\u003e"
March 23, 2011
Memcache VS Memcached VS MemcacheDB
"\u003cp\u003e1、 简单讲Memcache和Memcached都讲的是同一个开源项目http://memcached.org/,只不过Memcached一般指的是后台的cache server(其实也是一个客户端的,参考php手册).而Memcache指的访问cache server的客户端。Memcached提供了两种访问协议,ASCII和Binary。\u003c/p\u003e\n\u003cp\u003e2、 MemcacheDB=Memcached+BerkeleyDB组成的轻量的持久数据库,与前两者是不同的两个东西。\u003c/p\u003e\n\u003cp\u003e3、作为数据库就要讲究consistency,但是Memcached是一种分布式的缓存机制,因此并不严格要求consistency,而且实际上每个memcached server之间本身不通讯也不共享,所谓的分布式是由memcached的客户端程序来决定的。一般分布式算法采用基于server节点数的取余法,这种方法以node数为基础,因此增减服务器就会造成很大hash失效问题。所以改进的算法一般采用consistent hash算法,这种算法取消了以服务器节点数作为基数的理念,而是直接对服务器的节点进行hash,然后散布 …\u003c/p\u003e"
March 23, 2011
Memcache的安全性
"\u003cp\u003eMemcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄 露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这 些都是我们未知的,所以危险性是可以预见的。为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cem\u003e内网访问\u003c/em\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内 网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的 访问能够有效阻止其他非法的访问。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ememcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eMemcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占 …\u003c/p\u003e"
March 23, 2011
squid中日志文件详解
"\u003ch3 id=\"a4\"\u003e4.4 日志文件路径\u003c/h3\u003e\n\u003cp\u003e我将在第13章讨论所有squid的日志细节。你现在你关注的唯一事情是,squid将它的日志放在何处。默认的日志目录是squid安装位置下的logs目录。例如,假如你在./configure时没有使用–prefix=选项,那么默认的日志文件路径是/usr/local/squid/var/logs.\u003c/p\u003e\n\u003cp\u003e你必须确认日志文件所存放的磁盘位置空间足够。在squid写日志时如果接受到错误,它会退出和重启。该行为的主要理由应引起你的注意。squid想确认你不会丢失任何重要的日志信息,特别是你的系统被滥用或者被攻击时。\u003c/p\u003e\n\u003cp\u003esquid有三个主要的日志文件:cache.log,access.log,store.log.第一个文件即cache.log,包含状态性的和调试性的消息。当你刚开始运行squid时,你应密切的关注该文件。假如squid拒绝运行,理由也许会出现在cache.log文件的结尾处。在正常条件下,该文件不会变得很大。也请注意,假如你以-s选项来运行squid,重要的cache.log消息也可被送到你的syslog进程。通过使用cache_log指令,你可以改变该日志文件的路 …\u003c/p\u003e"
March 22, 2011
Windows不重启就使环境变量修改立即生效
"\u003cp\u003e在“我的电脑”-\u0026gt;“属性”-\u0026gt;“高级”-\u0026gt;“环境变量”中增加或修改环境变量后,需重启系统才能使之生效。有没有什么方法可让它即时生效呢?下面介绍一种方法:\u003c/p\u003e\n\u003cp\u003e一.以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口。\u003c/p\u003e\n\u003cp\u003e二.再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”-\u0026gt;“属性”-\u0026gt;“高级”-\u0026gt;“环境变量”中设置的 PATH 值已经生效。\u003c/p\u003e\n\u003cp\u003e不用担心DOS窗口中的修改会影响环境变量的值,DOS窗口中的环境变量只是Windows环境变量的一个副本而已。但是对副本的修改却会引发Windows环境变量的刷新,这正是我们想要的!\u003c/p\u003e"
March 22, 2011
iisapp 命令 弹出 iisschlp.wsc [88,25] 属性值无效 progid
"\u003cp\u003e在执行iisapp.vbs时,可能会提示如下错误:\u003c/p\u003e\n\u003cp\u003eWindows Script Component – file://C:WINDOWSsystem32iisschlp.wsc\n[88,25] 属性值无效 : progid\u003c/p\u003e\n\u003cp\u003e不要汗,解决也挺简单。\u003c/p\u003e\n\u003cp\u003e原因是为了所谓的ASP安全,卸载了 shell.applaction 组件,也就是 wshom.ocx\u003c/p\u003e\n\u003cp\u003e重新注册即可正常运行 iisapp.vbs\u003c/p\u003e\n\u003cp\u003e注册命令:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eregsvr32 wshom.ocx\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e用完以后,可以再把这个组件卸载掉:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eregsvr32 /u /s weboffice.ocx\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e有关iisapp命令的用法请参考:\u003c/p\u003e"
March 21, 2011
redhat6下配置网卡ip地址
"\u003cp\u003e\u003cstrong\u003e①ifconfig命令\u003c/strong\u003e\n用ifconfig命令修改后重起服务配置将会丢失\n给Eth0接口设置IP地址和子网掩码广播地址并激活:ifconfig eth0 192.168.1.155 netmask 255.255.255.0 broadcast 192.168.1.255 UP\n更改Eth0口的MAC地址:ifconfig eth0 hw ehter 00:40:64:c8:03:04\n一个网卡添加多个IP:ifoconfig eht0:1 192.168.1.156 ifconfig eth1:192.168.157\n添加网关:route add default gw 192.168.1.1\n动态获取IP:ifconfig eth0 -dynamic\n\u003cstrong\u003e②netconfig工具\u003c/strong\u003e\nnetconfig命令后 可以选择静态还是动态获取IP,选择静态后\nIP address:IP地址\nnetmask:子网掩码\ndefault gateway (IP):网关\nPrimary nameserver: DNS地址\n如果只想配置某一项\n修改IP是动态还是动态获取netconfig …\u003c/p\u003e"
March 21, 2011
sqlserver2000附加数据库错误823的解决方案
"\u003cp\u003e一、SQL-Server附加数据库时失败。\n1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。\n2、异常分析:关于823错误的 SQL-SERVER 中的帮助:\u003c/p\u003e\n\u003cp\u003e错误 823\n严重级别 24\n消息正文\n在文件 “%4!” 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。\u003c/p\u003e\n\u003cp\u003e解释\nMicrosoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。\n3、解决办法:\n在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:\n第一、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eexec sp_configure ‘allow …\u003c/p\u003e\u003c/blockquote\u003e"
March 21, 2011
serv-u 无法开始服务器!服务器执行缺少?
"\u003cp\u003e无法开始服务器!服务器执行缺少!\u003c/p\u003e\n\u003cp\u003e点击连接时提示:\u003c/p\u003e\n\u003cp\u003e无法连接到服务器!\u003c/p\u003e\n\u003cp\u003e127.0.0.1端口43958\u003c/p\u003e\n\u003cp\u003e已经在serv-u的文件夹属性里的安全选项卡上加上system(或其它操作用户)的完全控制权限.\u003c/p\u003e\n\u003cp\u003e还是没有用呀?急!! \u003cstrong\u003e解决办法:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e将FTP的目录添加上administrators组权限,就可以了,serv-u的文件夹属性里的安全选项卡上加上system(或其它操作用户)的完全控制权限\u003c/p\u003e"