新 Mac 到了

上周订的新 MacBook Pro 终于到了,第一眼看到的就是包装盒,Mac 的包装盒和 Mac 电脑一样设计得很美观。新款包装盒比我正在用的老 MacBook Pro 更小更紧凑。图片如下,上面白色包装是新款的,下面黑色是老款。

macbookpro

虽然两个都是15寸的,但是新款老款放在一起感觉新款可视面积要大一点点,厚薄程度都差不多,新款键盘做得更加细致,明显比老款要精致一些。新款开机按钮变小了。老款键盘上的触摸板一个是触摸控制鼠标一个是按键点击的,分开的;新款两个合在一起了,更加简洁。苹果的设计就是极致简单,多余的东西不要。看图:左边是新款,右边是老款。

macbookpro

FreeBSD 上安装配置 Nginx+PHP+FastCGI+MySQL

freebsd

在 VPS 里很少看见 FreeBSD 的踪影,主要原因是因为两大开源虚拟系统 Xen 和 OpenVZ 对 FreeBSD 都不是那么友好:(,OpenVZ 不能支持非 Linux 内核的操作系统,Xen 对 FreeBSD 的支持不太好(也可以说FreeBSD 对 Xen 的支持不好)。最近 VPSee 从 Advantagecom 订了一个 256MB 的 Xen VPS,想在上面试试 FreeBSD 先,Advantagecom 不提供换操作系统的面板,每次都要提交 ticket 换系统好麻烦,而且一个月只能换一次系统。VPSee 打算先用一个月的 FreeBSD,然后再换成 Linux。就目前 VPS 的状况来说,VPSee 还是推荐使用 Linux,对于 VDS 或者自己的服务器来说,Linux 和 FreeBSD 都是很棒的操作系统。

安装所需软件

FreeBSD上 有2种安装软件的方法:一种是二进制安装;另一种是源代码安装(Ports collection)。

二进制安装所需软件:

# /usr/sbin/pkg_add -r -v mysql51-server
# /usr/sbin/pkg_add -r -v nginx
# /usr/sbin/pkg_add -r -v php5
# /usr/sbin/pkg_add -r -v php5-mysql
# /usr/sbin/pkg_add -r -v lighttpd

源代码安装所需软件:

# cd /usr/ports/databases/mysql51-server
# make install clean

# cd /usr/ports/lang/php5
# make install clean

# cd /usr/ports/lang/php5-extensions
# make config
# make install clean

# cd /usr/ports/databases/php5-mysql
# make install clean

# cd /usr/ports/www/lighttpd
# make install clean

实际上我们只需要 lighttpd 里面的 spawn-fcgi,所以先把 spawn-fcgi 拷出来再删除 lighttpd。

# cp /usr/local/bin/spawn-fcgi /root/
# /usr/sbin/pkg_delete -v lighttpd-1.4.22
# cp /root/spawn-fcgi /usr/local/bin/spawn-fcgi

配置 MySQL

# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
# chown -R mysql:mysql /var/db/mysql
# /usr/local/bin/mysqld_safe &
# /usr/local/bin/mysqladmin -u root password ‘newpass’

配置 PHP

# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

配置 FastCGI

启动 PHP FastCGI:

# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

-a 127.0.0.1 : PHP FastCGI 绑定IP地址
-p 9000: PHP FastCGI 指定端口
-u www : PHP FastCGI 用户名
-g www : PHP FastCGI 用户组
-f /usr/local/bin/php-cgi : 指向 PHP5 fastcgi

检查 FastCGI 是否启动:

# sockstat -4 | grep 9000
www      php-cgi    33475 0  tcp4   127.0.0.1:9000        *:*
www      php-cgi    33474 0  tcp4   127.0.0.1:9000        *:*
www      php-cgi    33473 0  tcp4   127.0.0.1:9000        *:*
www      php-cgi    33472 0  tcp4   127.0.0.1:9000        *:*
www      php-cgi    33471 0  tcp4   127.0.0.1:9000        *:*
www      php-cgi    33470 0  tcp4   127.0.0.1:9000        *:*

如果不想每次重启 FreeBSD 都打一边上面的命令的话,把下面 PHP FastCGI 启动/自动代码保存到 FreeBSD 的启动目录(/usr/local/etc/rc.d/phpfcgi)里:

#!/bin/sh
# NGINX FastCGI php5 startup shell script
# Feedback 
# http://bash.cyberciti.biz/web-server/fastcgi-php-server-start-stop-script/
# Set ME #
PROVIDES=php-cgi
LIGHTTPD_FCGI=/usr/local/bin/spawn-fcgi
SERVER_IP=127.0.0.1
SERVER_PORT=9000
SERVER_USER=www
SERVER_GROUP=www
PHP_CGI=/usr/local/bin/php-cgi
PGREP=/bin/pgrep
KILLALL=/usr/bin/killall
### No editing below ####
cmd=$1
 
pcgi_start(){
  	echo "Starting $PROVIDES..."
 	$LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g 
$SERVER_GROUP -f $PHP_CGI
}
 
pcgi_stop(){
	echo "Killing $PROVIDES..."
	$KILLALL $PROVIDES
}
 
pcgi_restart(){
	pcgi_stop
	pcgi_start
}
 
pcgi_status(){
        $PGREP $PROVIDES > /dev/null
	[ $? -eq 0  ] && echo "$PROVIDES running" || echo "$PROVIDES NOT 
running" 
 
}
 
pcgi_help(){
  	echo "Usage: $0 {start|stop|restart|status}"
}
 
case ${cmd} in
[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;
[Ss][Tt][Oo][Pp]) pcgi_stop;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;
[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status ;;
*)      pcgi_help ;;
esac

注意要改成可执行文件:

# chmod +x /usr/local/etc/rc.d/phpfcgi

现在可以用 shell 脚本启动并查看 PHP FastCGI了:

# /usr/local/etc/rc.d/phpfcgi start
# sockstat -4 | less

配置 Nginx

打开 nginx.conf 配置 Nginx:

# vi /usr/local/etc/nginx/nginx.conf

user  www;

 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/vpsee$fastcgi_script_name;
            include        fastcgi_params;
        }

启动 Nginx:

# /usr/local/etc/rc.d/nginx start

如果启动不了,打开 /etc/rc.conf,加入

# vi /etc/rc.conf
nginx_enable="YES"

# /usr/local/etc/rc.d/nginx restart

测试

用文本写个 php 文件,用 phpinfo() 测试一下 PHP 是否可以运行。

BoxVPS:$5.99 256MB OpenVZ VPS

boxvps

BoxVPS 网站上看不到关于公司的详细信息。根据 whois 显示,boxvps.com 域名是在2007年6月注册的,公司声称有超过4年的从业经验,前身是mabushosting.net。BoxVPS 什么都做,从域名注册,share hosting 到 vps。网站上没有详细介绍我们想知道的信息,硬件配置?虚拟技术?VPSee 猜测是 OpenVZ。网上有一篇评论 “Mabus Hosting / BoxVPS – 1 year review”,感觉 BoxVPS 不稳定,好像是一个 one man 公司,都是一个叫 Justin 的人在打理。VPS 配置如下:

服务器在 Dallas Texas
OpenVZ
HyperVM 控制面板
2GB 硬盘
256MB Dedicated RAM
50GB 带宽
1个独立IP
5.99美元/月

硬件和网络信息:

We use top of the line servers(dual xeon+, 4GB+ RAM), We snapshot all services every 4 hour.

Our Datacenter is located inside the recognized Infomart telecom hotel, a private, Tier III, N+1 facility near downtown Dallas.

Web 前端优化

为了加快网站访问速度,除了可以优化后端数据库,cache,操作系统,web 服务器,重新设计架构以外,优化前端页面性能也很重要。

建议

Yahoo 的性能小组经过长期的研究总结出了几条让网站访问更快的实战经验:Best Practices for Speeding Up Your Web Site。High Performance Web Sites 和 YSlow 的作者 Steve Souders 在其教授的 Stanford CS193H 课程里谈到了这14条建议:

Make fewer HTTP requests
Use a CDN
Add an Expires header
Gzip components
Put stylesheets at the top
Put scripts at the bottom
Avoid CSS expressions
Make JS and CSS external
Reduce DNS lookups
Minify JS
Avoid redirects
Remove duplicate scripts
Configure ETags
Make AJAX cacheable

随后 Steve Souders 在其新书 Even Faster Web Sites 谈到了更多建议:

继续阅读 »

64MB 的 VPS 能支持多少访问量?

有个学生在 WebHostingTalk 上发帖请教 VPSLink 的 64MB VPS 是否撑得住18个静态网站的托管,后面有很多所谓的 ”专家“ 跟帖:

I do not believe you can host 18 websites on 64MB of RAM. I’d bump that up to at least 128 or 256.

I’d suggest 256 MB minimum. 128 MB might suffice if you really know what your doing (for memory optimization) but you may encounter problems getting things installed without burst memory or swap.

I really wouldn’t advise anything lower than 265MB RAM for website hosting. Seriously, even if you do use LXAdmin with Lighttpd and any other optimization, it’ll still not be enough.

所谓的 ”专家“ 都不相信 64MB 的 VPS 能应付那个学生的要求。那到底 64MB VPS 能不能用来托管18个静态网站呢?18个网站听上去好像很多,其实可以看作是一个网站只不过多了一些 HTML 页面而已。那个学生的问题要看具体网站访问量来定,不过就一般的静态网站来说,64MB 的 VPS 绰绰有余。lowendbox.com 写了一篇文章 “Yes, You can Run 18 Static Sites on a 64MB Link-1 VPS” 来反驳 “专家”。VPSee 完全站在 lowendbox 这一边,并且 VPSee.com 可以证明 64MB VPS 足够支持一个每天 700PV 左右的 WordPress 博客,VPSee 估计每天 1000PV 左右也是可以扛得住的。

为了证明 64MB 的 VPS 可以干很多事,VPSee 注册了一个 VPSLink 的 64MB VPS,详细看这里:VPSLink 试用),然后把自己另外一个 PV 在700左右的博客搬了过去,经过下面一番优化之后:

继续阅读 »

RapidXen:$7.49 128MB Xen VPS

rapidxen

RapidXen 是一家专注于 Xen VPS 的主机服务公司。VPSee 特别喜欢那些专注,技术背景强的小公司,RapidXen 是其中一个。公司的创始人 William Pitcock/nenolod 是一个有名的 Debian 开发人员和代码维护者,有很强的技术背景,VPSee 比较信赖有 open source 开发背景的人和公司。RapidXen 网站简单,导航清楚,可以找到我们想知道的重要信息,硬件,软件,网络,数据中心,价格,VPS 配置等。RapidXen 不提供控制面板,如果需要换操作系统需要提交ticket,还要等几天(够慢的,人手不够?)。RapidXen 一台服务器上平均跑20个左右的 VPS,比起那些跑100个的要好得多,不过 RapidXen 现在 Fremont 的服务器已经满了,只有 Chicago 可以选择了。RapidXen 主页上用很大的字体提醒用户“给知道干什么的人提供高质量的 VPS”,所以 RapidXen不适合 VPS 新手,也不适合 Linux 初学者。VPSee 推荐给需要稳定 VPS 的 Linux 中高级用户。VPS 配置如下:

服务器在 Chicago,Fremont
Xen
没有控制面板
5GB 硬盘
128MB RAM,256MB SWAP
50GB 带宽
1个独立IP
7.49美元/月

服务器硬件和网络信息:

Parts of our infrastructure are based on excellent servers from Supermicro with multiple Intel Xeon processors. The average server buildout for Intel-based machines is:

2 to 4 Xeon processors
6-8GB of RAM

Opteron machines is:

2 AMD Opteron 2216 HE dual-core processors
8 GB of RAM

VPS Village:$6 64MB Xen VPS

vpsvillage

VPS Village 是一家只提供 VPS 主机服务的公司。VPSee.com 特别偏爱那些专注的公司,专注于某一小块业务并把它做好做强比起那些什么都做的公司显得更加专业。公司网站很简单干净,甚至不用翻页就可以看到重要信息,价格,VPS 配置一目了然。VPS Village 是 GrokThis.net 的一家分公司,创立于2002年,公司技术背景较强,能提供自己的控制面板,连 billing 部分也是自制的。VPS Village 和 GrokThis.net 不同的地方在于 GrokThis.net 不提供 raid 和 backup 服务,所以VPS Village的价格要低很多,还有就是 VPS Village 不支持月付,至少要3个月付。网上对 VPS Village 的好评比较多,应该比较值得信赖,有一点让 VPSee 不满意的就是要等3天左右的时间才能开通 VPS,不明白这么有经验的公司为什么不能做到即时开通。不过考虑到 VPS Village 的稳定和速度,VPSee.com 还是要推荐一下。VPS 配置如下:

Xen
自制控制面板
4GB 硬盘
64MB RAM,128MB SWAP
50GB 带宽
1个独立IP
6美元/月

硬件和网络信息:

The VPS Village is running on a cluster of single-core, AMD 3800+ machines. RAID storage is not used, backups are not provided. The diskspace is provided through LVM, giving customers their own disk partitions.

TeamVPS:$7.99 512MB OpenVZ VPS

teamvps

TeamVPS 只提供 VPS/VDS 主机服务,公司网站清新简单,没有满屏闪烁的广告宣传。teamvps 是一家2008年新建的创业公司,但是网站上声称自己有超过11年的 hosting 行业的从业经验。teamvps 拥有自己的设备,不是 reseller,不代理销售。公司对自己的 VPS 很有信心,所有产品可以按月支付,不用长期合同来锁住用户,如果不满意可以随时取消付款。512MB 的内存/7.99美元的价格/并且可以按月支付,这还是 VPSee 第一次看到这么有吸引力的 VPS 产品,VPSee.com 强烈推荐。VPS配置如下:

OpenVZ
HyperVM 控制面板
25GB 硬盘
512MB Dedicated RAM,1GB Burstable RAM
400GB 带宽
1个独立IP
7.99美元/月

硬件和网络信息:

Minimum server specifications:
– Intel i7 920 – 2.66 GHz CPU
– 12 GB DDR3 Triple Channel Memory
– 1 TB Raid 1 Hard Drives.
The team vps datacenter is fed by redundant fiber feeds from American Fiber Systems, Cogent and Level 3. We utilize Foundry routers and switches in a parallel redundant design eliminating any one point of failure.

为什么 VPSee 偏爱美国的 VPS?

VPSee.com 介绍的低价 VPS 里面一般以美国 VPS 为主,原因很简单,因为只有在美国的 VPS 里面才能找到满意的10美元以下的 VPS,紧接着应该是英国和德国了,亚洲的 VPS 基本就不用看了,日本韩国虽然上网速度很快,但是 VPS 卖的很贵,你不会想要菲律宾,印度里西亚的主机吧?中国 VPS 服务商质量参差不齐,难得获得长期稳定的保障,还有南北问题,备案问题,全世界最大的局域网问题(你知道我在说什么)让人焦头烂额。所以 VPSee.com 里面介绍的低价 VPS 基本以美国的 VPS 为主。

美国依靠强大的硬件,软件,网络等技术力量把这个行业几乎垄断,规模化使得价格能做得很低,造就了一大批10美元以下的 VPS 主机。美国公司能做到全球性的贩卖,各类 share hosting,VPS/VDS 等能卖给全世界,就算是语言不通的中国也有大批的博客/网站把主机放在美国(当然这里面也有一些众所周知的因素导致博客批量搬家)。相反,中国的 hosting 服务商就只能在本来就竞争很激烈的国内市场争夺一块很小的蛋糕。也许这就是为什么美国强大的原因,因为他们的市场是全世界,而我们的市场只有国内。我们当然也想卖给全世界,难度有多大呢?全世界 IP 地址,域名,带宽都掌握在美国;硬件/软件/设备都是美国的;各类人才都在为美国工作,美国依靠强大的人才优势持续创新,获得领先的技术,依靠强大的商业操作能力和自由市场以及宽松的政策,加上强势的英语文化获得全世界的资金;还有语言问题,全世界以英语/西方文化为主,中国公司的宣传/网站/市场策略/公司文化/人才等各方面很难吸引到国外客户。举个简单例子,如果某个美国客户打电话过过来询问一个复杂的技术问题,我们的 support 服务需要优秀的技术+英语型人才才能满足客户要求,既懂技术又懂英语的人才导致成本过高。还有如果客户把主机放在中国,有一天被伟大的网络防火墙保护了怎么办?别忘了,防火墙可以防进也可以防出啊。如果有一天中国的 hosting 服务商能把 hosting 当作衣服,鞋子那样能卖到全世界多好啊:)

BSDVM:$8.95 64MB Xen VPS 支持 BSD

bsdvm

又找到了一个低价的 FreeBSD VPS,BSD Virtual Machine 提供 FreeBSD 的 VPS 主机,在市面上很少看到低价的 FreeBSD VPS 主机主要原因是成本,OpenVZ 是现在免费流行的虚拟机,与 Xen 不同,它是在一个修改过的 Linux 内核上运行多个 Linux 虚拟环境,所以只能提供 Linux 系统的虚拟,不能支持 FreeBSD;虽然 Xen 也是免费的,但是运行 Xen 的成本要比 OpenVZ 高,加上硬件虚拟成本也很好,所以也就很少看到低价的 FreeBSD VPS 了。BSD Virtual Machine 除了支持 FreeBSD 外,还支持 OpenBSD 和 NetBSD。浏览网站发现 bsdvm.com 上的英文很别扭,看出来站长母语不是英语,找不到数据中心,服务器,网络等信息,经 whois 查询发现 bsdvm.com 域名是今年3月份注册的,估计是某个非英语国家的人租的一台服务器开始的 hosting 服务。只推荐给想玩 BSD 的VPS 玩家娱乐。

VPS 配置如下:

Xen
5GB 硬盘
64MB RAM
无限带宽
1个独立 IP
8.95美元/月