其他Linux/Unix技术
基于开源Flash Server:Red5构建RTMP流媒体播放平台[原创]
[
2009-4-13 23:13 | by 张宴 ]
2009-4-13 23:13 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2009.04.13 转载请注明原文链接:http://blog.s135.com/post/409/]
上周五,我们基于开源Flash Server:Red5(http://osflash.org/red5)的Flash流媒体服务平台上线,内容涉及视频上传、视频分发、调用接口、Flash播放器等。
一、Flash RTMP流媒体播放演示(播放时进度条可以自由拖动):
生产环境更多 Flash RTMP 流媒体视频演示:http://jx3.xoyo.com/xgxz/video/
二、安装步骤简要说明:
①、安装JDK
打开http://java.sun.com/javase/downloads/,下载最新的Java SE Development Kit (JDK),安装在/usr/local/jdk/下。
②、安装Red5
打开http://osflash.org/red5/070final,下载red5-0.7.0.tar.gz,解压缩后执行./red5.sh,然后访问http://yourdomain:5080/,有演示。
三、服务器带宽消耗比较:
①、客户端 1.5M ADSL 环境,HTTP 方式播放单个视频,服务器所消耗的带宽:
②、客户端 1.5M ADSL 环境,RTMP 流媒体方式播放单个视频,服务器所消耗的带宽:
HTTP 方式播放,如果服务器端不限速,客户端的带宽越大,服务器消耗的带宽也越大,但限速又会影响用户体验;
RTMP 流媒体方式播放,只要客户端达到最低带宽要求,不管客户端的带宽如何,服务器消耗的带宽都一样。
如果播放10M以内大小的视频,HTTP 能够在较短的时间内下载完视频,能够降低并发观看用户数;
如果播放10M以上大小的视频,RTMP 要比 HTTP 方式节省不少带宽。
RTMP 播放时进度条可以自由拖动,虽然Lighttpd和Nginx目前也可以使用somevideo.flv?start=xxx的方式从指定位置下载视频,但还是不如 RTMP 灵活。
上周五,我们基于开源Flash Server:Red5(http://osflash.org/red5)的Flash流媒体服务平台上线,内容涉及视频上传、视频分发、调用接口、Flash播放器等。
一、Flash RTMP流媒体播放演示(播放时进度条可以自由拖动):
生产环境更多 Flash RTMP 流媒体视频演示:http://jx3.xoyo.com/xgxz/video/
二、安装步骤简要说明:
①、安装JDK
打开http://java.sun.com/javase/downloads/,下载最新的Java SE Development Kit (JDK),安装在/usr/local/jdk/下。
chmod +x jdk-6u13-linux-i586.bin
./jdk-6u13-linux-i586.bin
./jdk-6u13-linux-i586.bin
②、安装Red5
打开http://osflash.org/red5/070final,下载red5-0.7.0.tar.gz,解压缩后执行./red5.sh,然后访问http://yourdomain:5080/,有演示。
三、服务器带宽消耗比较:
①、客户端 1.5M ADSL 环境,HTTP 方式播放单个视频,服务器所消耗的带宽:
[root@localhost ~]# ./net.sh eth0 1
IN: 3318 Byte/s OUT: 259984 Byte/s
IN: 3486 Byte/s OUT: 249470 Byte/s
IN: 3332 Byte/s OUT: 259984 Byte/s
IN: 3090 Byte/s OUT: 252528 Byte/s
IN: 3000 Byte/s OUT: 252474 Byte/s
IN: 3000 Byte/s OUT: 253976 Byte/s
IN: 2940 Byte/s OUT: 255478 Byte/s
IN: 3004 Byte/s OUT: 252474 Byte/s
IN: 3452 Byte/s OUT: 252528 Byte/s
IN: 3270 Byte/s OUT: 260038 Byte/s
IN: 3586 Byte/s OUT: 252474 Byte/s
IN: 3318 Byte/s OUT: 259984 Byte/s
IN: 3486 Byte/s OUT: 249470 Byte/s
IN: 3332 Byte/s OUT: 259984 Byte/s
IN: 3090 Byte/s OUT: 252528 Byte/s
IN: 3000 Byte/s OUT: 252474 Byte/s
IN: 3000 Byte/s OUT: 253976 Byte/s
IN: 2940 Byte/s OUT: 255478 Byte/s
IN: 3004 Byte/s OUT: 252474 Byte/s
IN: 3452 Byte/s OUT: 252528 Byte/s
IN: 3270 Byte/s OUT: 260038 Byte/s
IN: 3586 Byte/s OUT: 252474 Byte/s
②、客户端 1.5M ADSL 环境,RTMP 流媒体方式播放单个视频,服务器所消耗的带宽:
[root@localhost ~]# ./net.sh eth0 1
IN: 3900 Byte/s OUT: 27878 Byte/s
IN: 4200 Byte/s OUT: 30868 Byte/s
IN: 4380 Byte/s OUT: 27801 Byte/s
IN: 4080 Byte/s OUT: 29965 Byte/s
IN: 4080 Byte/s OUT: 26450 Byte/s
IN: 3960 Byte/s OUT: 27143 Byte/s
IN: 3000 Byte/s OUT: 10061 Byte/s
IN: 3960 Byte/s OUT: 16166 Byte/s
IN: 3660 Byte/s OUT: 26480 Byte/s
IN: 4020 Byte/s OUT: 23127 Byte/s
IN: 3900 Byte/s OUT: 27878 Byte/s
IN: 4200 Byte/s OUT: 30868 Byte/s
IN: 4380 Byte/s OUT: 27801 Byte/s
IN: 4080 Byte/s OUT: 29965 Byte/s
IN: 4080 Byte/s OUT: 26450 Byte/s
IN: 3960 Byte/s OUT: 27143 Byte/s
IN: 3000 Byte/s OUT: 10061 Byte/s
IN: 3960 Byte/s OUT: 16166 Byte/s
IN: 3660 Byte/s OUT: 26480 Byte/s
IN: 4020 Byte/s OUT: 23127 Byte/s
HTTP 方式播放,如果服务器端不限速,客户端的带宽越大,服务器消耗的带宽也越大,但限速又会影响用户体验;
RTMP 流媒体方式播放,只要客户端达到最低带宽要求,不管客户端的带宽如何,服务器消耗的带宽都一样。
如果播放10M以内大小的视频,HTTP 能够在较短的时间内下载完视频,能够降低并发观看用户数;
如果播放10M以上大小的视频,RTMP 要比 HTTP 方式节省不少带宽。
RTMP 播放时进度条可以自由拖动,虽然Lighttpd和Nginx目前也可以使用somevideo.flv?start=xxx的方式从指定位置下载视频,但还是不如 RTMP 灵活。
中国移动飞信免费发短信API接口(第三方 Fetion API)[原创]
[
2009-3-22 10:35 | by 张宴 ]
2009-3-22 10:35 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2009.03.22 转载请注明原文链接:http://blog.s135.com/fetion_api/]
飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。
1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。
2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您的飞信好友,该手机号需要通过通过PC客户端、或回复短信接受您的邀请;
3、通过 http://sms.api.bz/ 提供的 API 接口,即可免费给飞信好友或给你自己的手机发短信。利用本API接口可进行日程提醒、服务器监控、报警、故障通知或短信自动控制等功能。
飞信免费发短信API接口在线演示页面:
http://sms.api.bz/
https://sms.api.bz/ (新增HTTPS加密接口,采用 EssentialSSL CA 颁发的可信任SSL证书)
飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
2009年5月28日新增:飞信免费发短信API接口调用方式(通过HTTPS加密隧道访问以下网址、支持GET和POST,进一步保证您的密码安全):
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。

例1:在Linux命令行下通过curl命令给自己的手机号(假设为13800138000)发送短信(HTTP GET 方式)
例2:在PHP5中通过file_get_contents函数发送短信(HTTP GET 方式)
飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。
1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。
2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您的飞信好友,该手机号需要通过通过PC客户端、或回复短信接受您的邀请;
3、通过 http://sms.api.bz/ 提供的 API 接口,即可免费给飞信好友或给你自己的手机发短信。利用本API接口可进行日程提醒、服务器监控、报警、故障通知或短信自动控制等功能。
飞信免费发短信API接口在线演示页面:
http://sms.api.bz/
https://sms.api.bz/ (新增HTTPS加密接口,采用 EssentialSSL CA 颁发的可信任SSL证书)
飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):
http://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
2009年5月28日新增:飞信免费发短信API接口调用方式(通过HTTPS加密隧道访问以下网址、支持GET和POST,进一步保证您的密码安全):
https://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
例1:在Linux命令行下通过curl命令给自己的手机号(假设为13800138000)发送短信(HTTP GET 方式)
curl "http://sms.api.bz/fetion.php?username=13800138000&password=123456&sendto=13800138000&message=短信内容"
例2:在PHP5中通过file_get_contents函数发送短信(HTTP GET 方式)
网易的开源软件镜像站点
[
2009-2-23 23:54 | by 张宴 ]
2009-2-23 23:54 | by 张宴 ]
网易开通了一个开源软件的镜像站点,网址为:
http://mirrors.163.com/
提供的镜像有:
1、Linux及BSD发行版镜像:FreeBSD、OpenBSD、RedHat、archlinux、centos、debian、fedora、gentoo、trixbox、ubuntu等。
2、开源软件镜像:eclipse可扩展开发平台、防火墙、openfiler网络存储管理工具。
该镜像目前只有一台杭州电信的服务器,网通用户访问可能会比较慢。
如果您安装 CentOS 5.2 系统的服务器位于电信机房,您可以修改/etc/yum.repos.d/CentOS-Base.repo文件,将它的yum源更改成网易的镜像,代替国外的镜像,以便获取更快的下载速度。
您可以按照以下步骤从 blog.s135.com 下载修改后的 CentOS-Base.repo 文件到您的服务器。
附:修改后的 CentOS-Base.repo 文件内容如下:
http://mirrors.163.com/
提供的镜像有:
1、Linux及BSD发行版镜像:FreeBSD、OpenBSD、RedHat、archlinux、centos、debian、fedora、gentoo、trixbox、ubuntu等。
2、开源软件镜像:eclipse可扩展开发平台、防火墙、openfiler网络存储管理工具。
该镜像目前只有一台杭州电信的服务器,网通用户访问可能会比较慢。
如果您安装 CentOS 5.2 系统的服务器位于电信机房,您可以修改/etc/yum.repos.d/CentOS-Base.repo文件,将它的yum源更改成网易的镜像,代替国外的镜像,以便获取更快的下载速度。
您可以按照以下步骤从 blog.s135.com 下载修改后的 CentOS-Base.repo 文件到您的服务器。
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://blog.s135.com/soft/linux/centos/5.2/CentOS-Base.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://blog.s135.com/soft/linux/centos/5.2/CentOS-Base.repo
附:修改后的 CentOS-Base.repo 文件内容如下:
一款不错的Linux命令行下的FTP客户端软件
[
2008-12-12 18:57 | by 张宴 ]
2008-12-12 18:57 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.12 转载请注明原文链接:http://blog.s135.com/post/387/]
借用了兄弟部门在全国N台服务器的空间放一些视频文件,由于只给我开放FTP帐号,于是找了一款Linux命令行下的FTP客户端软件──ncftp,用来作整个目录批量上传。ncftpput是它的一个附带程序,在shell脚本中调用ncftpput上传文件到FTP服务器,非常方便。
详细内容见其官方网站:http://www.ncftp.com/
编译安装:
示例:将本地/data0/htdocs/videofile/flv/games/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。
借用了兄弟部门在全国N台服务器的空间放一些视频文件,由于只给我开放FTP帐号,于是找了一款Linux命令行下的FTP客户端软件──ncftp,用来作整个目录批量上传。ncftpput是它的一个附带程序,在shell脚本中调用ncftpput上传文件到FTP服务器,非常方便。
详细内容见其官方网站:http://www.ncftp.com/
编译安装:
wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.gz
tar zxvf ncftp-3.2.2-src.tar.gz
cd ncftp-3.2.2/
./configure --prefix=/usr/local/ncftp
make && make install
tar zxvf ncftp-3.2.2-src.tar.gz
cd ncftp-3.2.2/
./configure --prefix=/usr/local/ncftp
make && make install
示例:将本地/data0/htdocs/videofile/flv/games/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。
/usr/local/ncftp/bin/ncftpput -u FTP帐号 -p FTP密码 -P FTP端口 -m -R 192.168.1.2 flv/games/ /data0/htdocs/videofile/flv/games/*
Linux下简单限制网卡的带宽[原创]
[
2008-11-20 16:56 | by 张宴 ]
2008-11-20 16:56 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.20 转载请注明原文链接:http://blog.s135.com/post/380/]
Linux下限制网卡的带宽,可用来模拟服务器带宽耗尽,从而测试服务器在此时的访问效果。
1、安装iproute
2、限制eth0网卡的带宽为50kbit:
3、限制带宽为50kbit后,在百兆局域网中wget下载一个大文件:
下载速度为457K/s,限制效果达到。
4、解除eth0网卡的带宽限制:
5、对比:未作带宽限制情况下,在百兆局域网中wget下载一个大文件:
下载速度为6.16MB/s。
Linux下限制网卡的带宽,可用来模拟服务器带宽耗尽,从而测试服务器在此时的访问效果。
1、安装iproute
yum -y install iproute
2、限制eth0网卡的带宽为50kbit:
/sbin/tc qdisc add dev eth0 root tbf rate 50kbit latency 50ms burst 1000
3、限制带宽为50kbit后,在百兆局域网中wget下载一个大文件:
[root@localhost ~]# wget http://192.168.1.7/test.zip
--19:40:27-- http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip'
37% [=======> ] 8,994,816 457K/s eta 27s
--19:40:27-- http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip'
37% [=======> ] 8,994,816 457K/s eta 27s
下载速度为457K/s,限制效果达到。
4、解除eth0网卡的带宽限制:
/sbin/tc qdisc del dev eth0 root tbf
5、对比:未作带宽限制情况下,在百兆局域网中wget下载一个大文件:
[root@localhost ~]# wget http://192.168.1.7/test.zip
--19:44:33-- http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip'
100%[==========>] 23,862,312 6.14M/s in 3.7s
19:44:36 (6.16 MB/s) - `test.zip' saved [23862312/23862312]
--19:44:33-- http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip'
100%[==========>] 23,862,312 6.14M/s in 3.7s
19:44:36 (6.16 MB/s) - `test.zip' saved [23862312/23862312]
下载速度为6.16MB/s。
硬盘故障导致的Input/output error[原创]
[
2008-11-2 15:55 | by 张宴 ]
2008-11-2 15:55 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.02 转载请注明原文链接:http://blog.s135.com/post/378/]
早上,一台Linux服务器出故障,SSH连上去后,ls、reboot、shutdown等命令都无法执行。提示:
执行echo "test" > test.txt,显示磁盘不能写,我怀疑是磁盘坏了。
在Google上搜索了一下,发现有人遇到相同的问题,也有人怀疑“you most likely have a failing disc”。
让机房重启了一下服务器,服务器发出报警声,无法启动。打的到机房一看:这台服务器的一块磁盘闪黄灯报警,在RAID控制面板中显示为FAIL,而另一块硬盘显示的是READY正常状态。看来,果然是硬盘坏掉了。

早上,一台Linux服务器出故障,SSH连上去后,ls、reboot、shutdown等命令都无法执行。提示:
引用
/bin/bash: ls: Input/output error
执行echo "test" > test.txt,显示磁盘不能写,我怀疑是磁盘坏了。
在Google上搜索了一下,发现有人遇到相同的问题,也有人怀疑“you most likely have a failing disc”。
让机房重启了一下服务器,服务器发出报警声,无法启动。打的到机房一看:这台服务器的一块磁盘闪黄灯报警,在RAID控制面板中显示为FAIL,而另一块硬盘显示的是READY正常状态。看来,果然是硬盘坏掉了。

我的博客空间迁移到了美国的VPS上
[
2008-10-26 16:02 | by 张宴 ]
2008-10-26 16:02 | by 张宴 ]
这几天,我的博客所在的虚拟主机不稳定。今天下午,我购买了位于美国德克萨斯州达拉斯市的VPS(CentOS 5.2 操作系统),在上面配置了“Nginx 0.7.19 + PHP 5.2.6 + MySQL 5.1.26”环境,然后将博客内容迁移到了VPS上。
该VPS是从瑞豪开源(http://rashost.com/)购买的,电信、网通访问速度都不错,稳定性也非常好。
VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。每个VPS都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立执行程序和独立系统配置等。
配置过程中的一些笔记:
一、VPS只有一个根分区,没有swap交换分区。VPS内存不大,于是,我为其增加了一个swap交换文件。
1、进入一个目录
2、获取256M的文件块:
3、创建swap文件
4、激活swap文件
5、查看一下swap是否正确:
6、加到fstab文件中让系统引导时自动启动
在末尾增加以下内容:
二、系统默认为美国东部时间,修改Linux时区为东八区
该VPS是从瑞豪开源(http://rashost.com/)购买的,电信、网通访问速度都不错,稳定性也非常好。
VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。每个VPS都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立执行程序和独立系统配置等。
配置过程中的一些笔记:
一、VPS只有一个根分区,没有swap交换分区。VPS内存不大,于是,我为其增加了一个swap交换文件。
1、进入一个目录
cd /var/
2、获取256M的文件块:
dd if=/dev/zero of=swapfile bs=1024 count=262144
3、创建swap文件
/sbin/mkswap swapfile
4、激活swap文件
/sbin/swapon swapfile
5、查看一下swap是否正确:
/sbin/swapon -s
6、加到fstab文件中让系统引导时自动启动
vi /etc/fstab
在末尾增加以下内容:
引用
/var/swapfile swap swap defaults 0 0
二、系统默认为美国东部时间,修改Linux时区为东八区
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
PHPChina.com旗下的开源技术杂志《PHPer》第12期
[
2008-10-9 08:37 | by 张宴 ]
2008-10-9 08:37 | by 张宴 ]
我发表在《PHPer》杂志第12期上的这篇文章──《Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器》,可能很多朋友已经提前看过,不过该杂志的其他文章也是非常不错的,值得一看。
《PHPer》杂志主页:http://phper.phpchina.com/
《PHPer》第12期下载:http://phper.phpchina.com/12/dl12.php?i=12

《PHPer》杂志主页:http://phper.phpchina.com/
《PHPer》第12期下载:http://phper.phpchina.com/12/dl12.php?i=12

通过浏览器从SVN更新代码到Linux服务器的指定目录[原创]
[
2008-10-6 19:06 | by 张宴 ]
2008-10-6 19:06 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.10.06 转载请注明原文链接:http://blog.s135.com/read.php/371.htm]
今天花几分钟写的一个PHP小程序,用途是:无需给程序员开放服务器SSH帐号,只需通过Web浏览器即可从SVN版本库更新代码到Linux服务器的指定目录。如果有需要,可以给这段代码加个密码登录。
1、假设www、www是Apache或Nginx服务器的用户名和组,/data0/www/是网页文件存放根目录,执行以下shell命令:
2、创建文件svn_up.php:
今天花几分钟写的一个PHP小程序,用途是:无需给程序员开放服务器SSH帐号,只需通过Web浏览器即可从SVN版本库更新代码到Linux服务器的指定目录。如果有需要,可以给这段代码加个密码登录。
1、假设www、www是Apache或Nginx服务器的用户名和组,/data0/www/是网页文件存放根目录,执行以下shell命令:
sudo -s
/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
mkdir -p /data0/www/
chown -R www:www /data0/www/
su www
cd /data0/www/
/usr/local/bin/svn checkout --username zhangyan --password 123456 http://xxx.xxx.xxx.xxx:8080/svn/web/trunk/
/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
mkdir -p /data0/www/
chown -R www:www /data0/www/
su www
cd /data0/www/
/usr/local/bin/svn checkout --username zhangyan --password 123456 http://xxx.xxx.xxx.xxx:8080/svn/web/trunk/
2、创建文件svn_up.php:
UnixSNS──Linux/Unix技术工程师社交网络
[
2008-9-24 23:52 | by 张宴 ]
2008-9-24 23:52 | by 张宴 ]
Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现[原创]
[
2008-6-25 08:10 | by 张宴 ]
2008-6-25 08:10 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.06.25 转载请注明原文链接:http://blog.s135.com/read.php/354.htm]
最近,在我原有的“Linux服务器系统监控程序”基础上,完善了HTTP、TCP、MySQL主动监控与MSN、E-mail、手机短信报警。监控程序以shell和PHP程序编写,以下为主要框架与部分代码:
一、系统监控接口程序(interface.php)具有的报警方式
1、MSN实时报警
①、监控程序每次检测到故障存在、或者故障恢复,都会发送短消息到管理员的MSN。

最近,在我原有的“Linux服务器系统监控程序”基础上,完善了HTTP、TCP、MySQL主动监控与MSN、E-mail、手机短信报警。监控程序以shell和PHP程序编写,以下为主要框架与部分代码:
一、系统监控接口程序(interface.php)具有的报警方式
1、MSN实时报警
①、监控程序每次检测到故障存在、或者故障恢复,都会发送短消息到管理员的MSN。

一个分类搜集了众多开源软件官方网址的站点
[
2008-2-23 22:36 | by 张宴 ]
2008-2-23 22:36 | by 张宴 ]
Links Collection of OpenSource Software
http://www.designandcommunication.co.jp/Nakano/
一个日本的网站,上面分类搜集了众多开源软件的官方网站地址。
例如:
数据库类别:http://www.designandcommunication.co.jp/Nakano/Dev/Database.html
HTTP服务器类别:http://www.designandcommunication.co.jp/Nakano/Net/HTTP.html
http://www.designandcommunication.co.jp/Nakano/
一个日本的网站,上面分类搜集了众多开源软件的官方网站地址。
例如:
数据库类别:http://www.designandcommunication.co.jp/Nakano/Dev/Database.html
HTTP服务器类别:http://www.designandcommunication.co.jp/Nakano/Net/HTTP.html
又一个新浪UNIX开源软件项目──xbayDNS
[
2008-1-21 21:52 | by 张宴 ]
2008-1-21 21:52 | by 张宴 ]
xbayDNS
协议:New BSD License
作者:huangdong
团队:新浪研发中心──系统研发
网址:http://code.google.com/p/xbaydns/
xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。
一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。
xBayDNS的特性如下:
• 基于Web的BIND管理
• 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
• 支持ACL、View、TSIG这样的BIND高级管理功能
什么时候使用xBayDNS?
• 你需要简单的管理一台BIND的DNS服务器
• 你需要多台DNS服务器来为你的用户提供解晰服务
• 一套基于DNS的GSLB系统
• 一套基于DNS的分布式GSLB系统
• 你需要维护多台分布式的服务器
安装:
协议:New BSD License
作者:huangdong
团队:新浪研发中心──系统研发
网址:http://code.google.com/p/xbaydns/
xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。
一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。
xBayDNS的特性如下:
• 基于Web的BIND管理
• 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
• 支持ACL、View、TSIG这样的BIND高级管理功能
什么时候使用xBayDNS?
• 你需要简单的管理一台BIND的DNS服务器
• 你需要多台DNS服务器来为你的用户提供解晰服务
• 一套基于DNS的GSLB系统
• 一套基于DNS的分布式GSLB系统
• 你需要维护多台分布式的服务器
安装:
我所熟悉的网站负载均衡技术[原创]
[
2007-11-1 22:29 | by 张宴 ]
2007-11-1 22:29 | by 张宴 ]
DNS轮循
DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
F5 BIG-IP
简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。
价格:BIG-IP 6400的价格在16万元人民币左右。
网址:http://www.f5.com.cn/(中国) http://www.f5.com/(全球)
LVS(Linux Virtual Server)
简介:软件四层交换。LVS是在Linux内核中作四层交换,只花128个字节记录一个连接信息,不涉及到文件句柄操作,故没有65535最大文件句柄数的限制。LVS性能很高,可以支持100~400万条并发连接。
价格:免费、开源
网址:http://zh.linuxvirtualserver.org/
L7SW(Layer7 switching)
简介:软件七层交换。这是一款类似LVS的新负载均衡软件,我没有实际应用过,性能未知,因此不作评价。这是它的英文介绍:Layer7 switching is driving a low-level engine using networking design to speed-up forwarding of data stream. Implementation in this project is split into a userspace daemon and a low-level kernelspace forwarding engine. Userspace daemon is responsible for scheduling and switching decisions. Kernelspace forwarding engine is responsible for forwarding stream and using TCP-Splicing scheme. TCP-Splicing is the postponement of the connection between the client and the server in order to obtain sufficient information to make a routing decision. This project is close to Linux Virtual Server project since lot of discusions on this topics have been made online and offline LVS project.
价格:免费、开源
网址:http://www.linux-l7sw.org/
HAProxy
简介:软件七层交换,反向代理服务器。目前还不支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障,HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。另外,HAProxy还支持双机热备。我曾经用过一段时间,能支持2~3万条并发连接。现在我用它做普通的小并发负载均衡,主要用到的是它的服务器健康检查功能。
价格:免费、开源
网址:http://haproxy.1wt.eu/
Nginx
简介:软件七层交换,反向代理服务器。能够很好地支持虚拟主机,可配置性很强,可以按URL做负载均衡。我目前一直在用,大约能支持3~5万条并发连接。
价格:免费、开源
网址:http://wiki.codemongers.com/NginxChs(中文维基)
DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
F5 BIG-IP
简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。价格:BIG-IP 6400的价格在16万元人民币左右。
网址:http://www.f5.com.cn/(中国) http://www.f5.com/(全球)
LVS(Linux Virtual Server)
简介:软件四层交换。LVS是在Linux内核中作四层交换,只花128个字节记录一个连接信息,不涉及到文件句柄操作,故没有65535最大文件句柄数的限制。LVS性能很高,可以支持100~400万条并发连接。
价格:免费、开源
网址:http://zh.linuxvirtualserver.org/
L7SW(Layer7 switching)
简介:软件七层交换。这是一款类似LVS的新负载均衡软件,我没有实际应用过,性能未知,因此不作评价。这是它的英文介绍:Layer7 switching is driving a low-level engine using networking design to speed-up forwarding of data stream. Implementation in this project is split into a userspace daemon and a low-level kernelspace forwarding engine. Userspace daemon is responsible for scheduling and switching decisions. Kernelspace forwarding engine is responsible for forwarding stream and using TCP-Splicing scheme. TCP-Splicing is the postponement of the connection between the client and the server in order to obtain sufficient information to make a routing decision. This project is close to Linux Virtual Server project since lot of discusions on this topics have been made online and offline LVS project.
价格:免费、开源
网址:http://www.linux-l7sw.org/
HAProxy
简介:软件七层交换,反向代理服务器。目前还不支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障,HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。另外,HAProxy还支持双机热备。我曾经用过一段时间,能支持2~3万条并发连接。现在我用它做普通的小并发负载均衡,主要用到的是它的服务器健康检查功能。
价格:免费、开源
网址:http://haproxy.1wt.eu/
Nginx
简介:软件七层交换,反向代理服务器。能够很好地支持虚拟主机,可配置性很强,可以按URL做负载均衡。我目前一直在用,大约能支持3~5万条并发连接。
价格:免费、开源
网址:http://wiki.codemongers.com/NginxChs(中文维基)
准备转化“故障转移群集解决方案”理论为实践
[
2007-9-21 19:18 | by 张宴 ]
2007-9-21 19:18 | by 张宴 ]
在微软的MSDN网站上看到一篇理论文章《Failover Cluster(故障转移群集) 》,文中的故障转移群集解决方案,有点类似两台 F5 BIG-IP 负载均衡交换机通过串口线进行心跳检测的互备模式,对我来说很有参考价值。
最近打算写一套基于Linux系统的实际应用方案,在两台Web服务器之间实现故障转移:用户实际访问的IP地址是“x.x.1.10”,两台服务器自动切换用Linux的IP别名来实现,当主服务器“x.x.1.1”正常时,主服务器的IP别名“x.x.1.10”对外提供服务,当两台服务器之间的心跳检测程序发现主服务器“x.x.1.1”发生故障或死机时,会停掉主服务器“x.x.1.1”的IP别名“x.x.1.10”(主服务器死机时该IP别名会自动消失),而由备用服务器“x.x.1.2”启用相同的IP别名“x.x.1.10”来接替主服务器提供服务;“信号”打算自己写一个心跳检测程序来实现;共享数据部分还没想好用什么方式来实现,NFS吗?不知道NFS在高负载读写下的性能如何?
附:故障转移群集解决方案

第一台服务器 (Database01) 是处理所有事务的活动服务器。 仅当 Database01 发生故障时,处于空闲状态的第二台服务器 (Database02) 才会处理事务。 群集将一个虚拟 IP 地址和主机名 (Database10) 在客户端和应用程序所使用的网络上公开。
注意:您可以将此设计扩展为包括多台活动服务器(除了所示的服务器外),要么使它们共享单个备用服务器,要么将每个活动服务器配置为另一个活动服务器的备用服务器。
最近打算写一套基于Linux系统的实际应用方案,在两台Web服务器之间实现故障转移:用户实际访问的IP地址是“x.x.1.10”,两台服务器自动切换用Linux的IP别名来实现,当主服务器“x.x.1.1”正常时,主服务器的IP别名“x.x.1.10”对外提供服务,当两台服务器之间的心跳检测程序发现主服务器“x.x.1.1”发生故障或死机时,会停掉主服务器“x.x.1.1”的IP别名“x.x.1.10”(主服务器死机时该IP别名会自动消失),而由备用服务器“x.x.1.2”启用相同的IP别名“x.x.1.10”来接替主服务器提供服务;“信号”打算自己写一个心跳检测程序来实现;共享数据部分还没想好用什么方式来实现,NFS吗?不知道NFS在高负载读写下的性能如何?
附:故障转移群集解决方案

第一台服务器 (Database01) 是处理所有事务的活动服务器。 仅当 Database01 发生故障时,处于空闲状态的第二台服务器 (Database02) 才会处理事务。 群集将一个虚拟 IP 地址和主机名 (Database10) 在客户端和应用程序所使用的网络上公开。
注意:您可以将此设计扩展为包括多台活动服务器(除了所示的服务器外),要么使它们共享单个备用服务器,要么将每个活动服务器配置为另一个活动服务器的备用服务器。







![订阅回忆未来[张宴]的博客](http://pic1.s135.com/images/rewin/rss.gif)




