关于搭建网站服务器的一些建议

经常有朋友来问我一些关于搭建网站服务器的经验,网上其实有不少这样的文章,不过我还是说一些我自己的建议,主要是软件方面的,适用于中小网站。 操作系统的选择 很多人选择操作系统很看重性能,不过要我说,主流发行版在性能、稳定性等等的问题上,差别不会太大。另外还有些爱感时髦的人总问我为什么不用ubuntu。ubuntu优点是不少,界面好看,安装软件方便,很适合做workstation。但是实际上,服务器是不需要界面的,上线后再安装软件的机会也不多。更需要关注的,可能是驱动兼容问题。尤其是服务器相关硬件的兼容性。没什么比装机器的时候发现硬件不兼容更让人郁闷的事情了。 在选择操作系统的问题上,我的建议是尽量使用大路货,RedHat, SUSE之类的都可以,最好是服务器版,版本新一些的,驱动支持相对丰富,能省不少事。 系统的配置 关于系统配置问题,我的建议不多,就一条,能不要的就不要,能关掉的service就关掉。有不少enterprise的service,看着挺吸引人的,但对你未必有用。services列表,最好从头到尾清一遍。尤其装的不是服务器版的时候,把那些workstation才需要的东西都关掉,什么gnome文件搜索服务,赶快关掉,不然死都不知道怎么死的。 软件的安装 安装软件,首先找官方支持的安装包,如果你已经选择了最大路的发行版,这个应该很好找。别上来就自己编译,RedHat、SUSE就是吃这口饭的,有些官方包中还带有针对自己系统的补丁,你很难比他们做的更好。关于在本机上编译就能运行更快的传说更是胡扯。只有三种情况下你需要自己编译: 找不到官方包。 有需求明确的补丁或者编译选项未包含在官方包中。 有需求明确的新版本,官方包还未提供。 除此之外的在安装服务器时的编译行为都只是安慰剂。你还是留着在自己的workstation上玩吧。 如果自己编译,要注意编译选项,别的不说,就说不要乱改–prefix。类Unix系统的目录结构有自己的convention,乱改–prefix很有可能破坏这种convention,需要到处修改缺省配置,会给你添很多麻烦,甚至碰到一些bug。 安全性 这个话题能写一本书。我这只讲一个原则,就是能关掉的端口就关掉。一个网站只需要打开两个端口,一个给http,一个给ssh。上线前用nmap扫一遍,看有没有漏开的端口。 ssh也不要用缺省端口,并且禁止密码登录,只打开PubKeyAuthentication。ssh是个很万能的东西,你可以通过它访问防火墙内的端口,上传文件,运行命令,干什么都够了。

Firebug中你不该错过的几个功能

Firebug是Firefox的一个扩展,提供了诸多网页开发的辅助功能,如果你是一个网页开发人员,天天要和HTML/CSS/Javascript打交道,Firebug能大大提高你的工作效率。 Firebug的大部分功能都很直观,我最常使用的是Inspect CSS/DOM和Javascript debug,有时候会看看Net和YSlow。还有一些功能,或大或小,不是上来就发现,但也是非常好用,不容错过: 获取XPATH 无论做userscript、bookmarklet还是网页爬虫,有时候用五六行DOM实现的网页元素提取,用XPath一句就搞定了。以前定位一个元素的XPath主要靠眼,有Firebug就省眼了,先用Inspect定位网页元素,然后点右键,选Copy XPath,搞定。 这个XPath是从DOM树里来的,已经修正了网页上的一些错误,所以有时和实际的XPath有一些偏差,但一般都很容易调整。比如一些网页中table里没有tbody,直接就是表格内容,DOM树会自动补上tbody,得到的xpath中也会有tbody,在实际使用的时候,和网页实际内容对应,就要把tbody去掉。 javascript命令行 如果哪个脚本语言不提供带命令行的控制台(console),我就不玩了,:-p。善用命令行控制台(console),可以省下很多debug的时间。我以前介绍过jsenv。Firebug也提供非常好用的javascript命令行控制台,可以直接和当前网页交互,输入命令的时候还能自动补齐。另外,一定不要忘记先看看这个命令列表。 控制台API 我最爱用的javascript函数就是alert,偶尔把它放在循环里,我可以花一下午的时间点OK玩。现在是和alert说byebye的时间了。Firebug提供了一套相当完备的javascript控制台API,可以将log直接输出到控制台而不再用跳出小窗口,提供多种log级别(debug,info,warn,error)和分组功能,可以显示对象属性,可以记录stack trace,甚至提供timer和profiler,调试performance都不用发愁了。记得查看控制台API的说明。 标尺 无论在网页布局还是做动态HTML,常常需要知道一个网页元素的相对位置。你可以装一个Measueit扩展自己量,也可以用Firebug里的标尺。用Inspector选中你要度量的元素,在右侧选中Layout标签,然后鼠标划过盒模型中央,标尺就会出现。 在所有浏览器中使用Firebug 对不起,不是所有的功能,是不是有点失望。不过,至少你可以保证控制台API正常输出,并且提供命令行的支持,已经相当不错了。下载firebuglite文件,放在脚本目录下,然后在页面中加入: <script language="javascript" type="text/javascript" src="/path/to/firebug/firebug.js"></script> 用F12就可以召唤出Firebug了。

新浪的技术含量

今天订了一个新浪博客,这是我第一次订来自新浪的博客。在bloglines里看,感觉怪怪的,检查了一下feed,发现feed中description的部分是这样的: <DIV> <DIV><FONT SIZE=”4″>刚回来,看完大家评论,赶紧写几句:</FONT></DIV> <DIV> </DIV> <DIV><FONT SIZE=”4″>一很多人谈到采访中有情绪化的成份,是,在看对王晋生的采访的时候,我自己也几乎坐不住。这么冷口冷面?真要引以为戒。美国有个写专栏的老太太,也是写新闻评论的,写了三十年,有人后来有点讥诮地问她“你以谁的声音在说话?”</FONT></DIV> <DIV><FONT SIZE=”4″>老太太说,“理想中自己的声音”。</FONT></DIV> <DIV><FONT SIZE=”4″>弱点不可避免,但起码得知道弱点在哪里,理想的应该是什么样。</FONT></DIV> <DIV> </DIV> <DIV><FONT SIZE=”4″>二国防科工委为什么不采访?…唉,国防科工委…采,还是不采,这是个中国记者的哈姆雷特式问题,</FONT><FONT SIZE=”4″>谢谢大家中国国情式的理解。但是,希望我们的节目有跟踪深化报道的机会,明天我会打个电话看。</FONT></DIV> style和内容混在一起,多余的div元素,都污染到rss feed里了。包含这些垃圾代码的内容的有1625字节,纯粹内容是873字节。另一篇随便在新浪博客主页找的文章的feed的description更夸张,9034字节:2177字节。 以前曾经做过一些互联网标准技术传教的工作,新浪常常是被当作典型的测试用例的。那时候就知道,新浪的人是不懂互联网标准的,不曾想他们玩起rss feed来,也这么的新浪特色。 rss feed应该是带宽杀手,如果采用互联网标准,保守的估计至少能从rss节约一半以上的带宽。网页推行互联网标准,搞不好也有一半。不过人家可能更本不在乎这点钱。