火箭!火箭!勇往直前。
[ 2008-12-12 21:01 | by 张宴 ]
一款不错的Linux命令行下的FTP客户端软件
[ 2008-12-12 18:57 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.12 转载请注明原文链接:http://blog.zyan.cc/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/*
百度的网通机房挂了几分钟
[ 2008-12-11 16:36 | by 张宴 ]
2008年12月11日16:21~16:26,百度的网通服务挂了。网通机房的两个F5 BIG-IP虚拟IP:202.108.22.5、202.108.22.43全部无法访问。16:27左右恢复正常。
下面是我写的一个“CDN智能DNS解析分析工具”,可以列出各类用户访问 www.baidu.com 被解析到的服务器IP地址(可以看出百度主站的IDC全在北京,前段时间还有一个北京长城宽带的多线IDC,现在去掉了),当时直接访问百度电信机房的两个虚拟IP是能打开的:
中国电信用户[北京]
220.181.6.19 (北京市·电信)
220.181.6.18 (北京市·电信)
中国网通用户[北京]
202.108.22.5 (北京市·网通)
202.108.22.43 (北京市·网通)
中国铁通用户[北京]
202.108.22.43 (北京市·网通)
202.108.22.5 (北京市·网通)
中国联通用户[北京]
202.108.22.5 (北京市·网通)
202.108.22.43 (北京市·网通)
下面是我写的一个“CDN智能DNS解析分析工具”,可以列出各类用户访问 www.baidu.com 被解析到的服务器IP地址(可以看出百度主站的IDC全在北京,前段时间还有一个北京长城宽带的多线IDC,现在去掉了),当时直接访问百度电信机房的两个虚拟IP是能打开的:
中国电信用户[北京]
220.181.6.19 (北京市·电信)
220.181.6.18 (北京市·电信)
中国网通用户[北京]
202.108.22.5 (北京市·网通)
202.108.22.43 (北京市·网通)
中国铁通用户[北京]
202.108.22.43 (北京市·网通)
202.108.22.5 (北京市·网通)
中国联通用户[北京]
202.108.22.5 (北京市·网通)
202.108.22.43 (北京市·网通)
亿级数据的高并发通用搜索引擎架构设计[原创]
[ 2008-12-9 08:47 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.09 转载请注明原文链接:http://blog.zyan.cc/post/385/]
曾经在七月,写过一篇文章──《基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计》,前公司的分类信息搜索基于此架构,效果明显,甚至将很大一部分带Where条件的MySQL SQL查询,都改用了Sphinx+MySQL搜索。但是,这套架构仍存在局限:一是MySQL本身的并发能力有限,在200~300个并发连接下,查询和更新就比较慢了;二是由于MySQL表的主键与Sphinx索引的ID一一对应,从而无法跨多表建立整站查询,而且新增加类别还得修改配置文件,比较麻烦;三是因为和MySQL集成,无法发挥出Sphinx的优势。
最近,我设计出了下列这套最新的搜索引擎架构,目前已经写出“搜索查询接口”和“索引更新接口”的beta版。经测试,在一台“奔腾四 3.6GHz 双核CPU、2GB内存”的普通PC机,7000万条索引记录的条件下,“搜索查询接口”平均查询速度为0.0XX秒(查询速度已经达到百度、谷歌、搜狗、中国雅虎等搜索引擎的水平,详见文章末尾的“附2”),并且能够支撑高达5000的并发连接;而“索引更新接口”进行数据分析、入队列、返回信息给用户的全过程,高达1500 Requests/Sec。
“队列控制器”这一部分是核心,它要控制队列读取,更新MySQL主表与增量表,更新搜索引擎数据存储层Tokyo Tyrant,准实时(1分钟内)完成更新Sphinx增量索引,定期合并Sphinx索引。我预计在这周写出beta版。
图示说明:
1、搜索查询接口:
曾经在七月,写过一篇文章──《基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计》,前公司的分类信息搜索基于此架构,效果明显,甚至将很大一部分带Where条件的MySQL SQL查询,都改用了Sphinx+MySQL搜索。但是,这套架构仍存在局限:一是MySQL本身的并发能力有限,在200~300个并发连接下,查询和更新就比较慢了;二是由于MySQL表的主键与Sphinx索引的ID一一对应,从而无法跨多表建立整站查询,而且新增加类别还得修改配置文件,比较麻烦;三是因为和MySQL集成,无法发挥出Sphinx的优势。
最近,我设计出了下列这套最新的搜索引擎架构,目前已经写出“搜索查询接口”和“索引更新接口”的beta版。经测试,在一台“奔腾四 3.6GHz 双核CPU、2GB内存”的普通PC机,7000万条索引记录的条件下,“搜索查询接口”平均查询速度为0.0XX秒(查询速度已经达到百度、谷歌、搜狗、中国雅虎等搜索引擎的水平,详见文章末尾的“附2”),并且能够支撑高达5000的并发连接;而“索引更新接口”进行数据分析、入队列、返回信息给用户的全过程,高达1500 Requests/Sec。
“队列控制器”这一部分是核心,它要控制队列读取,更新MySQL主表与增量表,更新搜索引擎数据存储层Tokyo Tyrant,准实时(1分钟内)完成更新Sphinx增量索引,定期合并Sphinx索引。我预计在这周写出beta版。
图示说明:
1、搜索查询接口:
利用shell命令操作Memcached[原创]
[ 2008-11-30 13:21 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.30 转载请注明原文链接:http://blog.zyan.cc/post/384/]
首先,需要了解Memcached协议,如果不清楚可参考《Memcached 协议中英文对照》。
1、数据存储(假设key为zhangyan,value为12345)
2、数据取回(假设key为zhangyan)
12345
END
3、数值增加1(假设key为zhangyan,并且value为正整数)
首先,需要了解Memcached协议,如果不清楚可参考《Memcached 协议中英文对照》。
1、数据存储(假设key为zhangyan,value为12345)
printf "set zhangyan 0 0 5\r\n12345\r\n" | nc 127.0.0.1 11211
STORED2、数据取回(假设key为zhangyan)
printf "get zhangyan\r\n" | nc 127.0.0.1 11211
VALUE zhangyan 0 512345
END
3、数值增加1(假设key为zhangyan,并且value为正整数)
printf "incr zhangyan 1\r\n" | nc 127.0.0.1 11211
12346Nginx虚拟主机多server_name的顺序问题[原创]
[ 2008-11-28 11:27 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.28 转载请注明原文链接:http://blog.zyan.cc/post/382/]
今天在配置Nginx + PHP + MediaWiki中,发现一个问题:MediaWiki所在的Nginx虚拟主机绑定了多个域名,但是不管通过什么域名访问MediaWiki首页,都会被跳转到其中的一个域名上。Nginx配置文件中没有相关的rewrite跳转规则,那么就应该是MediaWiki的PHP程序做的跳转,但是,遍历了MediaWiki目录下的所有文件以及查询了MySQL数据库中的每个表,都没有发现记录有这个域名。后来,通过查看源代码发现MediaWiki是根据$_SERVER['SERVER_NAME']做的跳转,顺藤摸瓜,发现了下列问题:
在一个Nginx虚拟主机中,可以绑定多个server_name,例如:
而server_name的先后顺序的不同,对PHP程序中使用$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取服务器域名是有影响的:
今天在配置Nginx + PHP + MediaWiki中,发现一个问题:MediaWiki所在的Nginx虚拟主机绑定了多个域名,但是不管通过什么域名访问MediaWiki首页,都会被跳转到其中的一个域名上。Nginx配置文件中没有相关的rewrite跳转规则,那么就应该是MediaWiki的PHP程序做的跳转,但是,遍历了MediaWiki目录下的所有文件以及查询了MySQL数据库中的每个表,都没有发现记录有这个域名。后来,通过查看源代码发现MediaWiki是根据$_SERVER['SERVER_NAME']做的跳转,顺藤摸瓜,发现了下列问题:
在一个Nginx虚拟主机中,可以绑定多个server_name,例如:
而server_name的先后顺序的不同,对PHP程序中使用$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取服务器域名是有影响的:
分享:《High Performance MySQL 第2版》PDF电子版下载
[ 2008-11-23 14:42 | by 张宴 ]
High Performance MySQL Second Edition
作者: Baron Schwartz / Peter Zaitsev / Vadim Tkachenko / Jeremy Zawodny / Arjen Lentz / Derek Balling
副标题: Optimization, Backups, Replication, and More
ISBN: 9780596101718
页数: 708
定价: USD 49.99
出版社: O'Reilly Media, Inc.
装帧: Paperback
出版年: 2008-06-18
High Performance MySQL is the definitive guide to building fast, reliable systems with MySQL. Written by noted experts with years of real-world experience building very large systems, this book covers every aspect of MySQL performance in detail, and focuses on robustness, security, and data integrity.
High Performance MySQL teaches you advanced techniques in depth so you can bring out MySQL's full power. Learn how to design schemas, indexes, queries and advanced MySQL features for maximum performance, and get detailed guidance for tuning your MySQL server, operating system, and hardware to their fullest potential. You'll also learn practical, safe, high-performance ways to scale your applications with replication, load balancing, high availability, and failover.
This second edition is completely revised and greatly expanded, with deeper coverage in all areas. Major additions include:
* Emphasis throughout on both performance and reliability
* Thorough coverage of storage engines, including in-depth tuning and optimizations for the InnoDB storage engine
* Effects of new features in MySQL 5.0 and 5.1, including stored procedures, partitioned databases, triggers, and views
* A detailed discussion on how to build very large, highly scalable systems with MySQL
* New options for backups and replication
* Optimization of advanced querying features, such as full-text searches
* Four new appendices
The book also includes chapters on benchmarking, profiling, backups, security, and tools and techniques to help you measure, monitor, and manage your MySQL installations.
作者: Baron Schwartz / Peter Zaitsev / Vadim Tkachenko / Jeremy Zawodny / Arjen Lentz / Derek Balling
副标题: Optimization, Backups, Replication, and More
ISBN: 9780596101718
页数: 708
定价: USD 49.99
出版社: O'Reilly Media, Inc.
装帧: Paperback
出版年: 2008-06-18
High Performance MySQL is the definitive guide to building fast, reliable systems with MySQL. Written by noted experts with years of real-world experience building very large systems, this book covers every aspect of MySQL performance in detail, and focuses on robustness, security, and data integrity.
High Performance MySQL teaches you advanced techniques in depth so you can bring out MySQL's full power. Learn how to design schemas, indexes, queries and advanced MySQL features for maximum performance, and get detailed guidance for tuning your MySQL server, operating system, and hardware to their fullest potential. You'll also learn practical, safe, high-performance ways to scale your applications with replication, load balancing, high availability, and failover.
This second edition is completely revised and greatly expanded, with deeper coverage in all areas. Major additions include:
* Emphasis throughout on both performance and reliability
* Thorough coverage of storage engines, including in-depth tuning and optimizations for the InnoDB storage engine
* Effects of new features in MySQL 5.0 and 5.1, including stored procedures, partitioned databases, triggers, and views
* A detailed discussion on how to build very large, highly scalable systems with MySQL
* New options for backups and replication
* Optimization of advanced querying features, such as full-text searches
* Four new appendices
The book also includes chapters on benchmarking, profiling, backups, security, and tools and techniques to help you measure, monitor, and manage your MySQL installations.
Linux下简单限制网卡的带宽[原创]
[ 2008-11-20 16:56 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.20 转载请注明原文链接:http://blog.zyan.cc/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。
Nginx+PHP+MySQL双机互备、全自动切换方案[原创]
[ 2008-11-19 23:20 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.19 转载请注明原文链接:http://blog.zyan.cc/post/379/]
在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而短时间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间只需几十秒。
一、双机互备、全自动切换方案:
1、拓扑图:
2、解释:
(1)、假设外网域名blog.zyan.cc解析到外网虚拟IP 72.249.146.214上,内网hosts设置db10对应内网虚拟IP 192.168.146.214
(2)、默认情况下,由主机绑定内、外网虚拟IP,备机作为备份,当主机的MySQL、Nginx或服务器出现故障无法访问时,备机会自动接管内、外网虚拟IP。两台服务器都启动负责监控、自动切换虚拟IP的守护进程/usr/bin/nohup /bin/sh /usr/local/webserver/failover/failover.sh 2>&1 > /dev/null &
(3)、主机和备机上的MySQL服务器互为主从,互相同步。在主机处于活动状态(即由主机绑定虚拟IP)时,读写主机的MySQL,写到主机的数据会同步到备机;在备机处于活动状态时,读写备机的MySQL,写到备机的数据会同步到主机(如果主机上的MySQL死掉暂时无法同步,主机上的MySQL恢复后,数据会自动从备机上同步过来,反之亦然)。
(4)、主机处于活动状态时,每20秒会把/data0/htdocs/(网页、程序、图片存放目录)、/usr/local/webserver/php/etc/(php.ini等配置文件目录)、/usr/local/webserver/nginx/conf/(Nginx配置文件目录)三个目录下的文件通过rsync推送到备机服务器上的对应目录(增量推送,两台服务器上一样的文件不会重复推送),反之如果备机处于活动状态时,每20秒会尝试把文件推送到主机。rsync的配置文件见两台服务器的/etc/rsyncd.conf,rsync守护进程的启动命令为rsync --daemon
3、自动切换流程
(1)、主机默认绑定内、外网虚拟IP,当主机的MySQL、Nginx无法访问或服务器宕机,主机上的failover.sh守护进程会自动摘除自己绑定的内、外网虚拟IP(如果主机上的failover.sh死掉,无法摘除自己绑定的虚拟IP也没关系),备机上的failover.sh守护进程会自动接管备机原来绑定的内、外网虚拟IP,并发送ARPing包给内、外网网关更新MAC,强行接管。
在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而短时间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间只需几十秒。
一、双机互备、全自动切换方案:
1、拓扑图:
2、解释:
(1)、假设外网域名blog.zyan.cc解析到外网虚拟IP 72.249.146.214上,内网hosts设置db10对应内网虚拟IP 192.168.146.214
(2)、默认情况下,由主机绑定内、外网虚拟IP,备机作为备份,当主机的MySQL、Nginx或服务器出现故障无法访问时,备机会自动接管内、外网虚拟IP。两台服务器都启动负责监控、自动切换虚拟IP的守护进程/usr/bin/nohup /bin/sh /usr/local/webserver/failover/failover.sh 2>&1 > /dev/null &
(3)、主机和备机上的MySQL服务器互为主从,互相同步。在主机处于活动状态(即由主机绑定虚拟IP)时,读写主机的MySQL,写到主机的数据会同步到备机;在备机处于活动状态时,读写备机的MySQL,写到备机的数据会同步到主机(如果主机上的MySQL死掉暂时无法同步,主机上的MySQL恢复后,数据会自动从备机上同步过来,反之亦然)。
(4)、主机处于活动状态时,每20秒会把/data0/htdocs/(网页、程序、图片存放目录)、/usr/local/webserver/php/etc/(php.ini等配置文件目录)、/usr/local/webserver/nginx/conf/(Nginx配置文件目录)三个目录下的文件通过rsync推送到备机服务器上的对应目录(增量推送,两台服务器上一样的文件不会重复推送),反之如果备机处于活动状态时,每20秒会尝试把文件推送到主机。rsync的配置文件见两台服务器的/etc/rsyncd.conf,rsync守护进程的启动命令为rsync --daemon
3、自动切换流程
(1)、主机默认绑定内、外网虚拟IP,当主机的MySQL、Nginx无法访问或服务器宕机,主机上的failover.sh守护进程会自动摘除自己绑定的内、外网虚拟IP(如果主机上的failover.sh死掉,无法摘除自己绑定的虚拟IP也没关系),备机上的failover.sh守护进程会自动接管备机原来绑定的内、外网虚拟IP,并发送ARPing包给内、外网网关更新MAC,强行接管。
硬盘故障导致的Input/output error[原创]
[ 2008-11-2 15:55 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.02 转载请注明原文链接:http://blog.zyan.cc/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正常状态。看来,果然是硬盘坏掉了。
从豆瓣宕机看IDC单点问题
[ 2008-10-31 17:26 | by 张宴 ]
豆瓣从上午11点开始宕机(见:http://blog.douban.com/douban/2008/10/31/139/),到现在已经超过6个小时了。
豆瓣的服务器托管在京东某BGP机房,我在那个机房有机器,试了试,从IDC内部是能访问的。另外,和豆瓣同一IP段的http://59.151.41.22/从外部是能够访问的。所以,我估计是IDC机房内豆瓣那一组线路的问题。
看来,多IDC异地容灾还是很重要的。IDC不出问题则以,一出问题,就成了最大的单点。
IDC机房内部到豆瓣路由是通的:
从IDC机房内部是能访问豆瓣的:
豆瓣的服务器托管在京东某BGP机房,我在那个机房有机器,试了试,从IDC内部是能访问的。另外,和豆瓣同一IP段的http://59.151.41.22/从外部是能够访问的。所以,我估计是IDC机房内豆瓣那一组线路的问题。
看来,多IDC异地容灾还是很重要的。IDC不出问题则以,一出问题,就成了最大的单点。
IDC机房内部到豆瓣路由是通的:
[root@localhost ~]# traceroute www.douban.com
traceroute to www.douban.com (59.151.41.93), 30 hops max, 38 byte packets
1 59.151.xxx.xxx (59.151.xxx.xxx) 0.929 ms 0.917 ms 0.954 ms
2 59.151.96.65 (59.151.96.65) 0.534 ms 0.249 ms 0.263 ms
3 211.151.227.86 (211.151.227.86) 1.931 ms 1.100 ms 2.053 ms
4 59.151.41.93 (59.151.41.93) 0.259 ms 0.252 ms 0.265 ms
traceroute to www.douban.com (59.151.41.93), 30 hops max, 38 byte packets
1 59.151.xxx.xxx (59.151.xxx.xxx) 0.929 ms 0.917 ms 0.954 ms
2 59.151.96.65 (59.151.96.65) 0.534 ms 0.249 ms 0.263 ms
3 211.151.227.86 (211.151.227.86) 1.931 ms 1.100 ms 2.053 ms
4 59.151.41.93 (59.151.41.93) 0.259 ms 0.252 ms 0.265 ms
从IDC机房内部是能访问豆瓣的:
[root@localhost ~]# wget http://www.douban.com/
--16:12:15-- http://www.douban.com/
=> `index.html'
Resolving www.douban.com... 59.151.41.93
Connecting to www.douban.com|59.151.41.93|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17,074 (17K) [text/html]
100%[=========================>] 17,074 --.--K/s
16:12:15 (12.21 MB/s) - `index.html' saved [17074/17074]
--16:12:15-- http://www.douban.com/
=> `index.html'
Resolving www.douban.com... 59.151.41.93
Connecting to www.douban.com|59.151.41.93|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17,074 (17K) [text/html]
100%[=========================>] 17,074 --.--K/s
16:12:15 (12.21 MB/s) - `index.html' saved [17074/17074]
Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化[原创]
[ 2008-10-28 16:55 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.10.28 转载请注明原文链接:http://blog.zyan.cc/post/375/]
VPS(全称Virtual Private Server)是利用最新虚拟化技术在一台物理服务器上创建多个相互隔离的虚拟私有主机。它们以最大化的效率共享硬件、软件许可证以及管理资源。对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置文件。
VPS服务器最重要的指标就是内存大小,多个VPS服务器可以共享一颗CPU,但不能共享同一块内存。内存越大,价格越贵。
下面,以我的博客所在的VPS为例,介绍在128M内存下对 Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 的优化。
至于 Nginx + PHP + MySQL 的安装配置,可参见:《Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第4版) 》
优化后的效果:
提供HTTP服务的1个Nginx进程占用11M物理内存,5个php-cgi进程每个占用8M左右物理内存,1个MySQL服务器占用7M物理内存,加上两个占用内存不大的Nginx和php-cgi父进程,Nginx + PHP + MySQL 系列总共只占用47.7%的物理内存,即62M物理内存(128M * 47.7% ≈ 62M)。
另外,VPS服务器系统自身和其它程序也会使用一些内存,但128M内存的VPS已经够用。总体而言,经过优化后,128M内存的VPS跑 Nginx + PHP + MySQL 效果不错。当然,如果有Money购买更大内存的VPS,就更好了。
优化项如下:
VPS(全称Virtual Private Server)是利用最新虚拟化技术在一台物理服务器上创建多个相互隔离的虚拟私有主机。它们以最大化的效率共享硬件、软件许可证以及管理资源。对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置文件。
VPS服务器最重要的指标就是内存大小,多个VPS服务器可以共享一颗CPU,但不能共享同一块内存。内存越大,价格越贵。
下面,以我的博客所在的VPS为例,介绍在128M内存下对 Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 的优化。
至于 Nginx + PHP + MySQL 的安装配置,可参见:《Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第4版) 》
优化后的效果:
提供HTTP服务的1个Nginx进程占用11M物理内存,5个php-cgi进程每个占用8M左右物理内存,1个MySQL服务器占用7M物理内存,加上两个占用内存不大的Nginx和php-cgi父进程,Nginx + PHP + MySQL 系列总共只占用47.7%的物理内存,即62M物理内存(128M * 47.7% ≈ 62M)。
另外,VPS服务器系统自身和其它程序也会使用一些内存,但128M内存的VPS已经够用。总体而言,经过优化后,128M内存的VPS跑 Nginx + PHP + MySQL 效果不错。当然,如果有Money购买更大内存的VPS,就更好了。
优化项如下:
我的博客空间迁移到了美国的VPS上
[ 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
《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件[原创]
[ 2008-10-21 12:01 | by 张宴 ]
2019.12.13
十年已经过去了,坚守的还有谁?
尚未佩妥剑,转眼便江湖。愿历尽千帆,归来仍少年。
APMServ 已改名 PHPTS,支持 Nginx + PHP + MySQL + Memcached + Redis + MongoDB + AI人工智能
【2020年02月14日 PHPTS 1.06 版本发布】
访问 PHPTS 官网了解详情:https://www.phpts.com/
PHPTS 1.06 版本,集成 Nginx 1.17.8、PHP 7.4.2、PHP 7.3.14、PHP 5.6.40、MySQL 8.0.19(x64)、Memcached 1.5.22、Redis 4.0.14(x64)、MongoDB 4.3.3(x64)、phpMyAdmin 5.0.1、Bash 终端,并可通过组件方式下载安装 InfluxDB(时间序列数据库)、HeidiSQL(MySQL客户端管理工具)、Another.Redis.Desktop.Manager(Redis客户端管理工具)。推荐在64位 Windows 系统上安装 PHPTS。
2011.11.02
最近工作非常忙碌,贯穿于10条产品线,每个工作日回家也很晚,博客、微博也上得少。
我也只能抽出一点周末时间去开发 APMServ,几次周末有事、软件上的一些技术问题,超出预期,造成了耽误。
当年开发APMServ的初衷,是那时候我还没有笔记本电脑,为了拷贝到U盘上,带到别的电脑,可以快速配置APM环境。然后一些人也想用,就将它免费共享出来,让想使用的人可以自己去下载。
焦急等待的心情可以理解,但等不到就谩骂的用户,类似的产品很多,建议你们去使用其他的产品。如果让你们每天不工作,去做一件费力不讨好的事,你们会去做吗?
APMServ 6.0的开发没有停止,也许需要一、两个周末,也许需要更长时间。
不想每天来页面看的用户,可以订阅以下邮件列表,APMServ发布时,会发邮件通知:
2012.01.04 进度预览:
[软件作者:张宴 本文版本:v1.1 最后修改:2008.11.06 转载请注明原文链接:http://blog.zyan.cc/apmserv_v526/]
两年后,APMServ再出新版本──APMServ 5.2.6,升级了各集成软件的版本,增加了Nginx、Memcached、WinSCP,以及部分Linux命令的支持。
软件名称:APMServ 5.2.6
软件作者:张宴
授权方式:免费软件
发布日期:2008年10月21日
运行环境:WinNT/Win2000/WinXP/Win2003
文件大小:20.4MB
官方网站:http://apmserv.zyan.cc
讨论群组:http://blog.zyan.cc/apmserv/bbs/
下载地址:
㈠官方下载点:
[国内下载点①→新浪爱问CDN] http://blog.zyan.cc/apmserv/bin/5.2.6/sina/
[国外下载点①→美国微软公司] http://blog.zyan.cc/apmserv/bin/5.2.6/microsoft/
㈡合作下载点:
[华军软件园] [新浪网] [中国站长站] [霏凡软件站] [绿色软件联盟] [绿色下载站] [1001下载乐园] [源码网] [共享世纪]
[IT168下载] [搜狐下载频道] [太平洋下载中心] [木蚂蚁下载] [汉江软件园] [寻源码] [洪越源代码] [中国站长之家]
老版本下载>>>
软件简介:
APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑时,均只需点击APMServ.exe中的启动按钮,即可自动进行相关设置,将Apache和MySQL安装为系统服务并启动。APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设置,只需鼠标一点即可完成。
1、注意事项:APMServ程序所在路径不能含有汉字和空格。
2、MySQL默认用户名:root,密码为空
3、MySQL数据库文件存放目录:MySQL5.1\data或MySQL4.0\data
4、网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin
5、访问本机请用http://127.0.0.1/或https://127.0.0.1/ (如果开启SSL)
6、非默认端口,网址为http://127.0.0.1:端口/或https://127.0.0.1:端口/
7、如果在“扩展功能”中选择使用Memcached,它的端口为:11211
8、APMServ集成了以下软件:
Apache 2.2.9 【HTTP服务器】
Nginx 0.7.19 【HTTP服务器】
NetBox 2.8 Build 4128 【HTTP服务器+ASP脚本解释引擎】
PHP 5.2.6 【PHP脚本解释引擎】
MiniPerl 5.8 【Perl脚本解释器】
Memcached 1.2.4 【key-value内存缓存系统】
MySQL 5.1.28 【MySQL数据库服务器】
MySQL 4.0.26 【MySQL数据库服务器】
phpMyAdmin 2.11.9.2 【MySQL数据库在线管理工具】
eAccelerator 0.9.5.3 【PHP脚本加速引擎】
ZendOptimizer 3.3.3 【PHP脚本加速引擎】
OpenSSL 0.9.8h 【HTTPS(SSL)安全传输协议】
附加组件:
㈠Perl、CGI支持(需下载ActivePerl):
APMServ 5.2.6 附带的是MiniPerl,可以运行简单的Perl、CGI程序。如果运行复杂的Perl、CGI程序,请下载ActivePerl,安装在APMServ所在分区根目录下的usr目录中。假如APMServ所在目录为E:\APMServ5.2.6,则将ActivePerl的安装路径选为E:\usr
ActivePerl 5.8.8.819 for Windows 下载地址:[华军软件园] [中国站长站]
注意事项:
迅雷、Skype、PPLive、BT等软件启动后默认会占用80端口,导致Apache无法启动。解决方法:先关闭这些软件,启动完APMServ之后,再开启这些软件。
已知BUG修正:
1、无法启动Nginx的BUG修正方法
http://www.unixsns.com/space.php?uid=1&do=thread&id=51
使用教程(非官方):
● 用APMServ一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP运行平台
软件截图:
㈠主界面:
十年已经过去了,坚守的还有谁?
尚未佩妥剑,转眼便江湖。愿历尽千帆,归来仍少年。
APMServ 已改名 PHPTS,支持 Nginx + PHP + MySQL + Memcached + Redis + MongoDB + AI人工智能
【2020年02月14日 PHPTS 1.06 版本发布】
访问 PHPTS 官网了解详情:https://www.phpts.com/
PHPTS 1.06 版本,集成 Nginx 1.17.8、PHP 7.4.2、PHP 7.3.14、PHP 5.6.40、MySQL 8.0.19(x64)、Memcached 1.5.22、Redis 4.0.14(x64)、MongoDB 4.3.3(x64)、phpMyAdmin 5.0.1、Bash 终端,并可通过组件方式下载安装 InfluxDB(时间序列数据库)、HeidiSQL(MySQL客户端管理工具)、Another.Redis.Desktop.Manager(Redis客户端管理工具)。推荐在64位 Windows 系统上安装 PHPTS。
2011.11.02
最近工作非常忙碌,贯穿于10条产品线,每个工作日回家也很晚,博客、微博也上得少。
我也只能抽出一点周末时间去开发 APMServ,几次周末有事、软件上的一些技术问题,超出预期,造成了耽误。
当年开发APMServ的初衷,是那时候我还没有笔记本电脑,为了拷贝到U盘上,带到别的电脑,可以快速配置APM环境。然后一些人也想用,就将它免费共享出来,让想使用的人可以自己去下载。
焦急等待的心情可以理解,但等不到就谩骂的用户,类似的产品很多,建议你们去使用其他的产品。如果让你们每天不工作,去做一件费力不讨好的事,你们会去做吗?
APMServ 6.0的开发没有停止,也许需要一、两个周末,也许需要更长时间。
不想每天来页面看的用户,可以订阅以下邮件列表,APMServ发布时,会发邮件通知:
2012.01.04 进度预览:
[软件作者:张宴 本文版本:v1.1 最后修改:2008.11.06 转载请注明原文链接:http://blog.zyan.cc/apmserv_v526/]
两年后,APMServ再出新版本──APMServ 5.2.6,升级了各集成软件的版本,增加了Nginx、Memcached、WinSCP,以及部分Linux命令的支持。
软件名称:APMServ 5.2.6
软件作者:张宴
授权方式:免费软件
发布日期:2008年10月21日
运行环境:WinNT/Win2000/WinXP/Win2003
文件大小:20.4MB
官方网站:http://apmserv.zyan.cc
讨论群组:http://blog.zyan.cc/apmserv/bbs/
下载地址:
㈠官方下载点:
[国内下载点①→新浪爱问CDN] http://blog.zyan.cc/apmserv/bin/5.2.6/sina/
[国外下载点①→美国微软公司] http://blog.zyan.cc/apmserv/bin/5.2.6/microsoft/
㈡合作下载点:
[华军软件园] [新浪网] [中国站长站] [霏凡软件站] [绿色软件联盟] [绿色下载站] [1001下载乐园] [源码网] [共享世纪]
[IT168下载] [搜狐下载频道] [太平洋下载中心] [木蚂蚁下载] [汉江软件园] [寻源码] [洪越源代码] [中国站长之家]
老版本下载>>>
软件简介:
APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑时,均只需点击APMServ.exe中的启动按钮,即可自动进行相关设置,将Apache和MySQL安装为系统服务并启动。APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设置,只需鼠标一点即可完成。
1、注意事项:APMServ程序所在路径不能含有汉字和空格。
2、MySQL默认用户名:root,密码为空
3、MySQL数据库文件存放目录:MySQL5.1\data或MySQL4.0\data
4、网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin
5、访问本机请用http://127.0.0.1/或https://127.0.0.1/ (如果开启SSL)
6、非默认端口,网址为http://127.0.0.1:端口/或https://127.0.0.1:端口/
7、如果在“扩展功能”中选择使用Memcached,它的端口为:11211
8、APMServ集成了以下软件:
Apache 2.2.9 【HTTP服务器】
Nginx 0.7.19 【HTTP服务器】
NetBox 2.8 Build 4128 【HTTP服务器+ASP脚本解释引擎】
PHP 5.2.6 【PHP脚本解释引擎】
MiniPerl 5.8 【Perl脚本解释器】
Memcached 1.2.4 【key-value内存缓存系统】
MySQL 5.1.28 【MySQL数据库服务器】
MySQL 4.0.26 【MySQL数据库服务器】
phpMyAdmin 2.11.9.2 【MySQL数据库在线管理工具】
eAccelerator 0.9.5.3 【PHP脚本加速引擎】
ZendOptimizer 3.3.3 【PHP脚本加速引擎】
OpenSSL 0.9.8h 【HTTPS(SSL)安全传输协议】
附加组件:
㈠Perl、CGI支持(需下载ActivePerl):
APMServ 5.2.6 附带的是MiniPerl,可以运行简单的Perl、CGI程序。如果运行复杂的Perl、CGI程序,请下载ActivePerl,安装在APMServ所在分区根目录下的usr目录中。假如APMServ所在目录为E:\APMServ5.2.6,则将ActivePerl的安装路径选为E:\usr
ActivePerl 5.8.8.819 for Windows 下载地址:[华军软件园] [中国站长站]
注意事项:
迅雷、Skype、PPLive、BT等软件启动后默认会占用80端口,导致Apache无法启动。解决方法:先关闭这些软件,启动完APMServ之后,再开启这些软件。
已知BUG修正:
1、无法启动Nginx的BUG修正方法
http://www.unixsns.com/space.php?uid=1&do=thread&id=51
使用教程(非官方):
● 用APMServ一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP运行平台
软件截图:
㈠主界面:
PHPChina.com旗下的开源技术杂志《PHPer》第12期
[ 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