分类目录归档:个人观点

#暨大离线# windows平台下面的静态文件web服务器选型

今天下午和晚上在做暨大离线的一些准备,主要测试了一些东西

离线下载,顾名思义你离线,服务器帮你下载,那么服务器下完之后还得给你传,这里采用什么传输方式呢?

一开始我有考虑使用ftp,但是发现相比起http下载,ftp还有很多人不会用,如果这个局域网过程仍然采用http下载,对于用户来说会不会比较无痛呢?

于是我开始测试服务器用的web服务器软件,服务器这边目前是win2k3环境(至于为什么,后面文章再有详细介绍)。

这个服务器承担让用户取回要下载的文件的这么一个角色,只需要对静态文件提供http下载即可,不需要脚本支持。

Nginx在windows——杯具!

一开始我测试了windows版本的nginx,nginx在linux上面是个很不错的服务器软件,有低资源占用,抗并发能力好等特点。但是到了windows平台上就坑爹啊~~这一点你还不能怪nginx的开发者,实际上C语言可以为Windows平台编写软件,linux也没有例外。程序本身的逻辑应该是跨平台的,而在具体与系统打交道(调用系统api)的时候才有差异,这个差异有很多方面,包括内存管理、进程管理、文件系统、网络控制等方面。而一个优秀的开源服务器软件,nginx,在windows下,是在这次测试中表现最渣的一个。对于同一个普通二进制静态文件,局域网内客户端开5线程下载平均速度在1mb/s左右,峰值可以达到1.5mb/s,速度很不稳定。

Apache在windows——仍旧杯具!

第二我测试了Apache,Apache作为市场占有率第一的服务器软件,在windows平台上也有比较完善的版本。我是从官方网站下载的2.2stable版安装的,还是跟上面一样的那个文件,一样的客户端一样的5线程,下载平均速度1.3mb/s,峰值能到1.5mb/s。速度比较稳定,不过Apache的个东西,性能不会是最好的,apache和nginx最大的不同是,apache使用了每个请求一个线程的阻塞I/O模型,nginx使用了单线程的非阻塞I/O模型,关于apache和nginx之间的讨论还有很多,我比较偏向于把apache和nginx组合来使用(明显是说在linux平台上),这样他们两个可以互相取长补短。

IIS不用说肯定是在windows——居然能跑这么快!坑爹啊

最后我尝试了IIS,IIS的配置过程看起来非常轻松方便。测试同一个文件,额,什么情况!这win2k3上面的iis6,居然让客户端的下载速度平均值达到了2mb/s,峰值能到2.3mb/s。搜了一下网上很多人都有说这个问题,在微软的windows上面就他自家的iis跑得最快了,别的都是渣渣。

就这样这个web服务器软件就暂时选定了IIS吧,是那个我之前相当鄙视的IIS,总的来说其实是自己对于IIS没有很多的认知。IIS怎么说市场份额也是排在第二的(Apache比它大几倍的稳居榜首),另外有一点,国内很多入门级虚拟主机都是windows+IIS+ISAPI来支持PHP的,他们也不会在windows上面弄apache,这一点也能说明一些问题。当然了,这是一片神奇的土地,国外又完全不是这么回事了,国外一般人不会用Windows做服务器的操作系统(是服务器不是pc),包括费用等方面的考虑(我觉得更大的原因是——用不着)。

 

阿黎私家主题正式发布

经过4天折腾,阿黎的个人博客终于换上新皮啦。这次的主题由阿黎自己亲手设计制作,风格大变身。

阿黎的博客是在7月20号正式开张的,开张的时候使用的主题是Asusena,这个主题是在Wordpress后台安装主题的地方搜索黑色找到的。当时觉得那个主题挺酷的,开张之后一直在按照自己的想法去不断的修改。期间我有看了很多套Wordpress主题教程,印象最深的是我爱水煮鱼博客的那一套教程,它很长,我看了很久。在8月10号左右,我在google reader上面看到一个关于jQuery的入门教程,感觉jQuery很有趣,可以做很多东西,我也开始去看一些jQuery的入门教程。然后后面大概在8月18号有看到一个叫做捣鼓笔记的博客,觉得用户体验很棒。现有主题的框架限制我不能做很多东西,在上面的基础知识积累之后,我开始萌生要自己制作主题的想法。

在8月18号的晚上,我画出了新博客主题的第一版设计图,如下

这个设计图很水啦,当时是把现有主题页面的样子截了一个图,然后换了一些文字的颜色,换了背景和logo,有点坑爹对不。

基本的思路是用的改用比较明亮的蓝色调,风格有点小清新哈,其实很多东西都是在制作的实际过程中不断的修改的。在设计图弄好的第二天,我开始动工,不算是从零开始啦,其实我是copy了一份原来的主题再做修改的。第一个修改的地方就是把样式表清空了,博客的页面顿时化为一堆文字,后面开始自己重新设计div框架,去掉原来一些hack用的内嵌样式,在一点一点把样式表写出来。

我大概用了两天的时间来做主体框架的模板index.php及其样式,然后用了一天的时间去做各种代码实现。现在本站的边栏没有采用WordPress本身的动态边栏,而是在sidebar.php边栏模板中纯代码实现。一开始看到很多博客大虾说着各种代码实现,自己感觉好厉害啊好高级啊,其实做起来难度不算太大,再说了很多大虾公布了很多代码,搜一下就能找到。我的新主题的制作当中找了很多的代码,自己也写了很多,在这里就不一一列出了。

当然了,直抱着接照搬的心态的话是不行的,很多代码需要根据你自己的情况再去修改或者优化。其实有时候代码实现也是不得已而为之,像边栏这个部分,调用WordPress自身动态边栏小工具就一个函数,顺序就是按照小工具里面排的顺序,你想在系统输出的动态边栏中间插入一个自己的代码实现的模块,就不行了(用各种特殊技巧“曲线救国”的话不算,例如拿jQuery移动dom节点)。这些小工具有很多局限,想要自制一个模块的话可以用文本小工具写一点html,但是又不能放php。

除了边栏之外,其实很多插件都是可以用少量代码直接实现的,有很多特殊的功能其实用不着。对比起旧主题,在插件方面,首先我删掉了很多已经不用的插件,听说不启用的插件放在那里也有一定的性能影响。另外我做了如下改动:

1.代码实现了相关文章,去掉efficient-related-posts插件
2.代码实现了给力语录,去掉了quotes-collection插件(回想自己真是傻叉,这么简单的一个东西,之前优化博客的时候只是想到把这些语录放在数据库,还是改存在文件比较快呢?现在的方案是直接写在php里面,一个数组)
3.用了WordPress原生的嵌套评论,去掉wordpress-thread-comment插件,同时代码实现了ajax评论提交和评论邮件回复。
4.代码实现了首页的分页,去掉了wp-pagenavi插件,这个插件很有名;评论的分页我没有做,因为这个博客还不是很热啦;正文的分页不是很好做,我文章很长,像上一篇文章在旧主题里面页面长度居然达到了7k+像素,我准备以后写文章尽量少废话,复杂内容分多篇文章写成专题这个方案来解决。
5.去掉了sns分享,去掉了wp-sns-share插件,貌似除了我自己打小广告会在sns发我的文章链接之外,还没有人把我的文章蛋疼的分享到sns吧,而且我自己还是直接在sns上面发的而不是用这一个插件。
6.代码高亮插件wp-syntax直接去掉了,发现我贴代码的情况还不算太多。
7.Db Cache Reloaded数据库缓存插件换成了WP Super Cache插件,同时利用我在国内的基本没什么用的双线主机给博客静态内容做了一下CDN加速。 厄,开了cdn之后留言提交不到,在测试测试吧,暂时关闭(理论上对php的请求是不应该被cdn的)   好吧,是comment-ajax.js的问题,里面在最开始获取script的路径然后计算出提交用comment-ajax.php的路径还有几个状态图片。因为js是会被cdn的,所以它就获得了cdn那边的路径,这样可不行,强制重新定义了路径,有兴趣可以具体看一下那个js,有注释,没压缩。

目前阿黎的个人博客启用的插件只有5个,分别是AkismetGoogle XML SitemapsWP-Cumulus改造版本WP-PostViewsWP Super Cache。第三个插件是3d标签云,很多博客大虾都不用的,我个人认为这个东西的体验不错,很多童鞋觉得这个东西好看又好玩,所以我把它留下了。这个插件为了给标签云的flash传参会在页面写出一大坨代码,这一点很不好。

后面阿黎还用了大半天的时间做了一下jQuery的效果,包括左侧的滑动导航,页面的淡入淡出效果(IE不显示),页面图片的延迟加载,右上角rss按钮的闪烁,长文章滚动到下面的时候的侧栏随动,文章标题链接点击效果。

这些效果大部分只会在非ie6的浏览器上面显示,ie6这个问题后面再写专题探讨。在ie6之下已知的问题有左侧导航栏无法点击的问题(经典的ie6 z-index bug!),劝还在使用ie6或者各种马甲ie6的童鞋赶紧换用现代的浏览器吧,ie6是十年前的产品。

关于新主题的发布,我要感谢很多大虾,他们提供了很多很好的代码,是他们让WordPress变得更美好。还要感谢主机格调群里面帮助过支持过我的博友们。还有就是在前期博客设计图出来的时候给过意见的威威和阳阳,还有彦宇哥哥,彦宇哥哥眼光很独特,能够发现很多细节的问题。

这篇就暂时说到这里,不知道文章会不会很长呢,下一篇我会讲一下在主题制作过程中学到的东西。

阿黎说USB移动存储

今天阿黎来说一下USB移动存储方面的知识和阿黎的经验。USB移动存储设备我们很多人都有用到,USB大容量和快速等优点直接就秒杀了软盘这个东西,很多年前我们已经不在电脑上面装软盘驱动器了。

其实光驱貌似也快要淘汰了,对比起U盘,普通Cd-Rom 650Mb显得很不够用,我们使用光盘的机会也越来越少了。以前除了操作系统,很多普通软件都得拿光盘装,现在基本都可以上网下载了。光驱还有一个弱点就是寿命比较短,就算你不常用,台式机的光驱很多都只能用几年就读不了盘了,常用的话挂得更快。

我们常用的USB存储设备有U盘和移动硬盘,包括各种手机、Mp3、Mp4之类的也可以算在U盘里面。下面阿黎来说说纯U盘和移动硬盘这两大块的一些问题。

①关于扩容U盘:U盘有很多个品牌得很多种不同的产品,有很多设计造型很独特的U盘,也有很多设计中规中矩的U盘。阿黎认为,目前我们使用U盘最主要还是用于一些文件的中转,例如我要从我教室的电脑上面拷贝一份老师的ppt回宿舍看,我就要用到U盘。那么其实我们主要只是需要U盘有存储功能就够了。

其实现在市场上有很多假U盘,第一种就是仿冒的,这一种尤其多见于各种奇形怪状的设计的U盘那里,特别是国外的好的设计,可能很快就会被C2C(Copy to China,山寨?)。然而,这些U盘的质量很难有保证。第二种是最恶劣的,垃圾扩容盘,我所知道的在我身边遇到这种U盘的至少有两个同学了。所谓的垃圾扩容盘是指什么呢?现在U盘的容量越来越大,有32G的,有64G的,8G跟16G的都比较普遍了,价格也不算很贵了。很多童鞋买U盘都尽量选一个大一点的,问题就在这里。

有一些黑心的商家会利用特别的软件工具把一些旧的、坏的、回收回来的U盘存储芯片翻新,然后做成新U盘出售。他们会用特别的工具把U盘存储芯片上坏的部分隐藏起来,同时他们还可以将U盘的标称容量改大,例如,有一个本来是128M容量的U盘,然后用工具把标称容量改成8G,重新装一个外壳打包装然后用8G 容量U盘的价格出售。这不是开玩笑哦,这是可以做到的而且市场上的确有很多这样的U盘,说不定你在用的就是。很多人把U盘插在电脑上,右键属性一看,容量差不多就以为可以了,其实不然。

这样的U盘明显会出问题,首先,虚标容量可以骗过系统,但是骗不了自己。如果芯片本身就是128M容量的,你能把它标成8G,但是你可以放8G东西进去吗?这明显是不可以的啊,如果确实这样做会造成存储数据的损坏,例如有一些扩容U盘在写到物理极限的时候(例如上面说的例子,128M),可能复制文件的过程就中断了,可能有提示错误,也可能没有提示。你高高兴兴的以为复制完的数据,其实不完整。有的扩容盘做得很好,没有任何错误提示,但是数据会读不出来,读出来不完整等等,反正问题多多。

那么怎么检测扩容盘呢?我们可以使用一个叫做MyDiskTest的工具检测,这个工具的主程序好像停止更新很久了,在win7系统里面无法完成对扩容盘的修复。我们可以用这个工具帮我们尝试写入容量标示的数据,看看U盘是否能够正常存储,如果你看到类似于下图那样的提示,那么你中招了……

如果你的U盘是垃圾扩容盘,那么很难保证在使用过程中不会出什么问题。这个工具可以帮你把U盘恢复原貌,回到其确切的容量。这样就不会出现这个问题,当你想放进去超过实际容量的东西的时候系统还傻乎乎的以为真能放进去。还有一点需要提一下,如果你看到所谓的足量U盘,那么它很可能是假的。标准单位是按照2^10=1024为单位换算的,即1GB=1024MB=1024*1024KB=1024*1024*1024B;而现在的现在存储设备厂商是按照1000为单位换算的,1GB只相当于实际的0.931GB,所以4G=4*0.931=3.724G左右,8G=7.448G左右,都不会出现刚刚好在电脑上显示几乎跟标示容量一样的情况,如果你遇上了别以为它质量特别好,特可能只是扩容过而已。

有一个阿黎遇到的实例就是放在U盘里头的东西读不出来了。这可以是一个很严重的问题,阿黎认为,数据是无价的,我们更需要一个质量过硬的读写稳定的U盘。如果你的U盘检测到是扩容的,那么阿黎十分不建议你继续用这个盘,至少你不能存重要的东西、没有备份的东西在里面,他随时可能挂掉。

在哪里买U盘好?阿黎个人认为,在电脑城等地方其实也不确保(很可能是非常不确保)能买到正规的质量好的U盘,有一些摆地摊的、价格远低于实际的就更加可疑了。阿黎比较推荐网购,不过网购也有很多假货的,购买数码电子类产品阿黎推荐在卓越、京东等比较有质量保证的的网上商城购买,切记便宜莫贪。

②买U盘还是移动硬盘?其实如果想要购买移动硬盘的话性质就不一样了,如果说U盘是少量文件转移用,那么移动硬盘就是一个偏向于大文件转移、文档存档存放等的用途。一般移动硬盘的容量比U盘大很多,当然价格也会贵几百块。但是算起来其实移动硬盘比较值,用移动硬盘的钱去买U盘,凑起来容量肯定还不会够移动硬盘大。不过比起U盘,移动硬盘的便携性差很多,一般来说移动硬盘体积要比U盘大很多,而且一般都需要一根数据线来跟电脑连接,而U盘一般是直插的,也比较小巧。

除了上面所说的,可能很多没有用过移动硬盘的人会忽略一点,就是移动硬盘会比U盘快很多。阿黎早些年也以为,同样是Usb接口的存储设备,速度应该都差不多,其实不然。一般移动硬盘能达到20-40mb每秒的写入速度,30-40mb的读出速度;而U盘的写入速度一般不会超过10Mb每秒,读取速度也不会高过20mb每秒。这一点差别在拷贝大文件例如电影等的时候有很明显的体现。阿黎也有发现吧系统镜像放在移动硬盘上面去给别人装机会比用光盘块,具体没有详细测试过。所以阿黎上面有说淘汰光驱。

移动硬盘会有假的吗?好吧,在中国其实……移动硬盘一样会有假货,市场上有很多移动硬盘是用回收的笔记本硬盘加上一块简单的电路板改造而成的。尤其是容量在30G到40G附近的移动硬盘,早期的笔记本电脑很多硬盘是这个容量的。阿黎也有一个,用着还可以其实,掉链子的情况不多。移动硬盘比U盘更贵所以买的时候应该更加谨慎,如果买到下图这一种……

③Usb 3.0?随着科技的进步在Usb接口的标准上面又发展出新的Usb3.0标准,Usb3.0标准极大的提高了传输的带宽。简单地说,USB2.0的最高传输速率为480Mbps,即60MB/s,而Usb 3.0则是达到5Gbps的最高传输速率。早阵子有同学要买移动硬盘提到了Usb3.0这个问题,其实是这样的,有一个东西我们要明确,Usb3.0的接口跟我们现在普遍的Usb2.0接口是不一样的,但是他们可以兼容。兼容表示这两个标准的插头和插座可以一起用不会出现插不进的问题,而且数据上也是可以正常传输的。不过Usb3.0加了5根线,具体就是在原来的Usb2.0的4个金属触点前面并排加了5个触点,下面的图可以看一下。

可以对比发现我们现有的一般的Usb2.0接口,这5个触点是在原来usb2.0接口的空白没有用到的地方开辟的,所以他物理上可以跟2.0的接口兼容。而多加了线这一点也明显地告诉我们,如果我们把一个Usb3.0接口的移动硬盘接在usb2.0接口的电脑上面,是没有办法利用到usb3.0的,因为只有接头跟接口两边都是Usb3.0接口才能让这新增加的5根线连接上。一般在台式机上面用于转换Usb3.0接口的Pci板卡已经有了,也有很多笔记本配备了Usb3.0的接口,但是更多的是像阿黎这样没有配备Usb3.0的笔记本和台式机,这些机器就暂时不能利用这些新技术了。

话说其实移动硬盘的速度瓶颈还有一个,就是硬盘的本身,硬盘是电脑里面为数不多的有机械运动的主要部件。机械运动这个属性注定它会有速度瓶颈。貌似我们一般的硬盘读写速度最多也只有60mb左右,想要一个速度很快的硬盘?搜索SSD固态硬盘吧,很贵……

=============题外话分割线=============

上次有朋友反映博客文章太长这个问题,阿黎也有深深的考虑过,有些东西的确不能三言两语讲明白,阿黎本人也比较多废话,所以文章就长篇大论了。阿黎有试着写简短一点但是这篇又不短了……阿黎有努力尽量写得有趣一点能够吸引读者去读这长长的文章,阿黎以后尽量给文章配点图图,大家有任何的意见和建议欢迎留言或者发邮件给阿黎提出。额,话说一周没有更新博客了,最近忙得要死,无论是人还是机器都是满负荷运转,阿黎在冲刺假期最后的几天,加油!