Archive

Archive for the ‘博客心得’ Category

一次网站故障排除

December 18th, 2009

放在prgmr的VPS上的一个网站不能访问了, 症状如下:

  • 浏览器长时间尝试连接后超时
  • nginx返回 502 bad gateway
  • 能ping通, SSH能连通
  • cpu/mem都很空闲

放狗搜索”nginx 502 bad gateway”, 没什么帮助, 五花八门啥都有。

怀疑VPS流量超标,可是ssh tunnel无恙。

不得已之下重起nginx,重起php-cgi, 重起mysqld,问题依旧。

抓狂之下,使劲ls,突然发现几个log文件特别大,唔唔?于是一df,发现100%了……

删除所有log文件后,恢复正常。

启示:一定要从最简单的问题开始排除。

终于是时候彻底告别WordPress自带的搜索了

June 10th, 2009

Google早就提供自定义搜索的功能,可惜又要申请代码又要改模板的,我倒是尝试过,最后撤了,嫌麻烦,继续用WordPress自带的慢吞吞搜索,不过现在……

Google大神又提供了一个添加自定义搜索到WordPress侧边栏的方法。当然了,这个方法不限于WordPress,适用于任何网站。而且简单得令人发指。

终于终于是时候彻底告别WordPress自带的搜索了,Yeah!

第一步:把以下代码添加到一个Widget里面,所有网站都一样,不用去申请不同代码。

<!– Google Custom Search Element –>
<div id=”cse” style=”width:100%;”>Loading</div>
<script src=”http://www.google.com/jsapi” type=”text/javascript”></script>
<script type=”text/javascript”>
google.load(’search’, ‘1′);
google.setOnLoadCallback(function(){
new google.search.CustomSearchControl().draw(‘cse’);
}, true);
</script>

第二步:Ooops,没了,简单吧。 效果见网贝侧边栏。如果你还没见过这个效果,请一定要看一下,超炫超强的。 Read more…

,

wopus的国内主机

June 5th, 2009

如果现在还有什么理由把blog放在国内的话,那只能是“为了提高国内访客的访问速度”这一条了。所以…如果你的大部分读者是通过RSS阅读器来读你的blog,那就没有必要把blog放国内,反正他们也甚少直接打开页面来看。如果你的读者群喜欢直接访问网页的话,速度确是个很重要的因素。

网贝前段时间搬到wopus销售的国内主机上,当然主要是考虑到大家的访问速度,不过嘛,实际上还有一两个其它原因,比方有时候要用这个点测测其他服务器的连接速度之类的应用。总而言之,是搬回国了。

两个月用下来,总体感觉:非常满意。

在“主机速度的影响因素”一文中我说过速度取决于线路和负载。首先看看负载,呵呵,暂时来说我是偷笑的:

load average: 1.18, 1.22, 1.08

这是我不时top一下所记录到的最大负载。对双E5405而言,基本上是空载。

(BTW: 我有这个强迫症,新主机都要去cat /proc/cpuinfo; top…)

然后是线路,至少这服务器的出国线路是上好的,从美国能稳定1.2MBytes/s的上下载速度,对于电信线路可以说罕见了。不知道网通的朋友访问起来速度怎么样。

稳定性方面,没有能注意到的down time。

技术支持方面…由于一切都很顺利,没啥需要技术支持的地方。这方面wopus的口碑一直是不错的。

所以,如果你决定排除万难,定要把blog放国内,那这台主机是个很好的选择。有意的话就找酋长去商量吧。或者去WopusIDC平台看看。

,

VPS折腾记录

April 30th, 2009

今天好不容易更新一篇,却是自己做记录,对大家没啥用的东西…惭愧。

题外话:网贝回国,希望大家反映一下速度比起以前如何,多谢。

嗯,既然回国,那个Linode的VPS就暂时空闲了,于是俺开始折腾…根据自己的摸索,在彻底忘记之前,把折腾的一些次序记录如下备查。

1. Deploy一个Distribution。我的选择是CentOS 5.2,不要选64bit,因为太吃内存了。

2. 启动之,然后SSH进去,使用命令 system-config-securitylevel-tui 配置防火墙,关掉22,打开随便什么端口,然后到/etc/ssh/sshd_config去,换端口,禁止root登录,禁止密码方式登录。做一个key存下来。重启sshd,用key file登回去。

3. 安装LNMP,步骤参考这篇,但有些参数需要修改。用 #! /bin/bash 制作.sh文件来自动化进程。最好有以前保存的nginx.conf, php-fpm.conf等。
重启nginx的命令是 kill –HUP `cat /path/to/nginx/nginx.pid`。

4. 配置MySQL,参考官方文档即可,删匿名账号,加密码等。

5. 安装phpMyAdmin,还没搞清楚它为什么说我没装Bzip2和zip,我明明装了嘛…不过不影响使用。

嗯,暂时做到这里,下回分解。

心得:控制面板是多余的,root是爽歪歪的,菜鸟(俺)是记不住命令行的,Google是万能的。

, , ,

主机速度的影响因素

April 9th, 2009

美国空间合租指南这篇文章中,我的主要着眼点在于服务的稳定性,这固然是第一要义,然而网站的速度也是一个极为重要的指标。今天就来说说影响主机速度的几个因素。

使用浏览器打开一个网站时,如果你的眼睛足够快,或者那个网站足够慢,在浏览器的状态栏你将能看到三个步骤: 它们是

  1. 域名解析
  2. 等待网站响应
  3. 传输数据

通常,在一个典型的成功打开网页行为中,域名解析的时间是可以忽略的,等待时间大部分集中于后两步。而影响后两步的因素又有哪些呢?

这里我就不再描述TCP协议了,大家只需要大略清楚以下过程

  1. 浏览器发送请求到服务器 [因素:线路]
  2. 服务器找到网页(静态)或临时创造网页(动态) [因素:服务器负载]
  3. 服务器把网页代码发回浏览器 [因素:线路]

所以实际上只有两个因素:线路和服务器负载。

线路方面测试起来很容易,ping过去就是了,数值越小越好。作为举例,这方面DreamHost有较大优势,因为机房在美国西海岸,离中国近。但DreamHost上的站是不是就一定快呢?绝非如此。由于大量的Oversell, DreamHost上的网站普遍响应时间都较长。而网贝所在的达拉斯机房,论ping值是稍高于DreamHost(250ms VS 200ms from Shanghai),但由于有极佳的服务器性能保证,所以访问起来反而快得多。

那么讲到最后,到底应该如何测试主机的速度呢?简单的ping显然是不够的,但除了亲自体验,我也想不出更好更方便的法子来。Linode可以选择4个不同地点的机房,同时也贴心地提供了四个机房的文件下载测速。而那些没有提供测速的主机,换做我就只好到twitter上吼一声,叫大家帮忙反馈一下访问体验。当然把twitter换成QQ或者论坛都是一样的。

, , , ,