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
使用Nginx轻松实现开源负载均衡──9月20日在ChinaUnix技术沙龙上的演讲PPT[原创]
[ 2008-9-21 13:21 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.09.21 转载请注明原文链接:http://blog.zyan.cc/post/369/]
9月20日下午,我应邀参加了 ChinaUnix 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙(http://linux.chinaunix.net/bbs/thread-1019366-1-1.html),很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演讲。
《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。
PPT分为四个部分:
1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。
2、用实例,来介绍Nginx负载均衡在大型网站的典型应用。
3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负载均衡做一个对比。
9月20日下午,我应邀参加了 ChinaUnix 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙(http://linux.chinaunix.net/bbs/thread-1019366-1-1.html),很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演讲。
《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。
PPT分为四个部分:
1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。
2、用实例,来介绍Nginx负载均衡在大型网站的典型应用。
3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负载均衡做一个对比。
Nginx 0.7.x + PHP 5.2.8(FastCGI)搭建胜过Apache十倍的Web服务器(第4版)[原创]
[ 2008-8-29 18:31 | by 张宴 ]
本文已有最新版本:
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v4.14 最后修改:2009.04.14 转载请注明原文链接:http://blog.zyan.cc/nginx_php_v4/]
前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第4篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。这是一篇关于Nginx 0.7.x系列版本的文章,安装、配置方式与第3篇文章相差不大,但配置参数有不同。Nginx 0.7.x系列版本虽然为开发版,但在很多大型网站的生产环境中已经使用。
链接:《2007年9月的第1版》、《2007年12月的第2版》、《2008年6月的第3版》
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。
Nginx 的官方中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。
在3万并发连接下,访问Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不高:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.1,另在RedHat AS4上也安装成功)
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v4.14 最后修改:2009.04.14 转载请注明原文链接:http://blog.zyan.cc/nginx_php_v4/]
前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第4篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。这是一篇关于Nginx 0.7.x系列版本的文章,安装、配置方式与第3篇文章相差不大,但配置参数有不同。Nginx 0.7.x系列版本虽然为开发版,但在很多大型网站的生产环境中已经使用。
链接:《2007年9月的第1版》、《2007年12月的第2版》、《2008年6月的第3版》
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。
Nginx 的官方中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。
在3万并发连接下,访问Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不高:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.1,另在RedHat AS4上也安装成功)
解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误[原创]
[ 2008-7-30 07:09 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.07.30 转载请注明原文链接:http://blog.zyan.cc/read.php/361/]
昨日,有朋友问我,他将Web服务器换成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有时候访问会出现“502 Bad Gateway”错误,如何解决。
我让按照以下两个步骤去解决,最后在第2步中将FastCGI的timeout时间增加为300,问题解决:
PS:比较羡慕迅雷的Web服务器,16G内存。
1、查看当前的PHP FastCGI进程数是否够用:
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。
2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:
昨日,有朋友问我,他将Web服务器换成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有时候访问会出现“502 Bad Gateway”错误,如何解决。
我让按照以下两个步骤去解决,最后在第2步中将FastCGI的timeout时间增加为300,问题解决:
PS:比较羡慕迅雷的Web服务器,16G内存。
1、查看当前的PHP FastCGI进程数是否够用:
netstat -anpo | grep "php-cgi" | wc -l
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。
2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:
......
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
使用Nginx作为Web服务器的国内网站[原创]
[ 2008-6-19 08:30 | by 张宴 ]
[文章作者:张宴 本文版本:v1.1 最后修改:2008.06.19 转载请注明原文链接:http://blog.zyan.cc/post/352/]
Nginx 超越Apache的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中有新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴Web 2.0网站。
Nginx 在国内的应用正在不断发展壮大!
一、使用 Nginx 运行 PHP(FastCGI) 程序的网站:
1、六间房视频(http://www.6.cn/):nginx/0.6.14 + PHP
2、Discuz!官方论坛(http://www.discuz.net/):nginx/0.7.2 + PHP/5.2.6
3、互联星空播客[新浪服务器](http://you.video.vnet.cn/):nginx/0.5.33 + PHP/5.2.5
Nginx 超越Apache的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中有新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴Web 2.0网站。
Nginx 在国内的应用正在不断发展壮大!
一、使用 Nginx 运行 PHP(FastCGI) 程序的网站:
1、六间房视频(http://www.6.cn/):nginx/0.6.14 + PHP
[root@new-host ~]# curl --head http://6.cn/reg.php
HTTP/1.0 200 OK
Server: nginx/0.6.14
Date: Wed, 18 Jun 2008 00:58:20 GMT
Content-Type: text/html
Vary: Accept-Encoding
X-Cache: MISS from YZ-W-146
X-Cache-Lookup: MISS from YZ-W-146:80
Via: 1.0 YZ-W-146 (squid/3.0.STABLE1.dev)
Connection: close
HTTP/1.0 200 OK
Server: nginx/0.6.14
Date: Wed, 18 Jun 2008 00:58:20 GMT
Content-Type: text/html
Vary: Accept-Encoding
X-Cache: MISS from YZ-W-146
X-Cache-Lookup: MISS from YZ-W-146:80
Via: 1.0 YZ-W-146 (squid/3.0.STABLE1.dev)
Connection: close
2、Discuz!官方论坛(http://www.discuz.net/):nginx/0.7.2 + PHP/5.2.6
[root@new-host ~]# curl --head http://www.discuz.net/index.php
HTTP/1.1 200 OK
Server: nginx/0.7.2
Date: Wed, 18 Jun 2008 00:57:16 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.6
Set-Cookie: dznet_sid=Ek9XYc; expires=Wed, 25-Jun-2008 00:57:16 GMT; path=/; domain=.discuz.net
HTTP/1.1 200 OK
Server: nginx/0.7.2
Date: Wed, 18 Jun 2008 00:57:16 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.6
Set-Cookie: dznet_sid=Ek9XYc; expires=Wed, 25-Jun-2008 00:57:16 GMT; path=/; domain=.discuz.net
3、互联星空播客[新浪服务器](http://you.video.vnet.cn/):nginx/0.5.33 + PHP/5.2.5
[root@new-host ~]# curl --head http://you.video.vnet.cn/pg/user/userHead.js.php
HTTP/1.1 200 OK
Server: nginx/0.5.33
Content-Type: text/html; charset=gb2312
X-Powered-By: PHP/5.2.5
Expires: Sun, 13 Jul 2008 05:43:16 GMT
Last-Modified: Fri, 13 Jun 2008 05:43:16GMT
Content-Encoding: gzip
Content-Length: 22403
Date: Wed, 18 Jun 2008 01:09:33 GMT
X-Varnish: 1426517043 1413292132
Age: 415577
Via: 1.1 varnish
Connection: keep-alive
HTTP/1.1 200 OK
Server: nginx/0.5.33
Content-Type: text/html; charset=gb2312
X-Powered-By: PHP/5.2.5
Expires: Sun, 13 Jul 2008 05:43:16 GMT
Last-Modified: Fri, 13 Jun 2008 05:43:16GMT
Content-Encoding: gzip
Content-Length: 22403
Date: Wed, 18 Jun 2008 01:09:33 GMT
X-Varnish: 1426517043 1413292132
Age: 415577
Via: 1.1 varnish
Connection: keep-alive
Nginx 0.6.31 + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第3版)[原创]
[ 2008-6-9 23:08 | by 张宴 ]
本文已有最新版本:
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v3.2 最后修改:2008.07.16 转载请注明原文链接:http://blog.zyan.cc/read.php/351.htm]
前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第3篇文章,也是Nginx 0.6系列版本成为稳定版后的第一篇文章,安装、配置方式与以往略有不同,并增加了一些在生产环境运行中不断修改、调整,总结出的配置上的优化。
链接:《2007年9月的第1版》、《2007年12月的第2版》
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 的中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。
在3万并发连接下,访问Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不算高:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.1,另在RedHat AS4上也安装成功)
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v3.2 最后修改:2008.07.16 转载请注明原文链接:http://blog.zyan.cc/read.php/351.htm]
前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第3篇文章,也是Nginx 0.6系列版本成为稳定版后的第一篇文章,安装、配置方式与以往略有不同,并增加了一些在生产环境运行中不断修改、调整,总结出的配置上的优化。
链接:《2007年9月的第1版》、《2007年12月的第2版》
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 的中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。
在3万并发连接下,访问Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不算高:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.1,另在RedHat AS4上也安装成功)
解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求[原创]
[ 2008-4-10 12:50 | by 张宴 ]
Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页
例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页
但在有些应用中,需要使静态文件能够响应POST请求。
对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页
[root@new-host ~]# curl -d 1=1 http://www.sohu.com/index.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.sohu.com Port 80</ADDRESS>
</BODY></HTML>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.sohu.com Port 80</ADDRESS>
</BODY></HTML>
例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页
[root@new-host ~]# curl -d 1=1 http://blog.zyan.cc/tech/index.htm
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>
但在有些应用中,需要使静态文件能够响应POST请求。
对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:
server
{
listen 80;
server_name domain.zyan.cc;
index index.html index.htm index.php;
root /opt/htdocs;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}
location ~ .*\.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}
{
listen 80;
server_name domain.zyan.cc;
index index.html index.htm index.php;
root /opt/htdocs;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}
location ~ .*\.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}
Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒”[原创]
[ 2008-3-26 17:25 | by 张宴 ]
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量:
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。
2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
引用
grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l
服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。
2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
Nginx versus Apache (两者的对比)
[ 2008-1-28 09:25 | by 张宴 ]
新浪发起的UNIX开源软件项目
[ 2008-1-10 08:45 | by 张宴 ]
Memcachedb
协议:New BSD License
作者:stvchu, gary.caokai, forever.sky81
团队:新浪互动社区事业部──博客产品
网址:http://www.memcachedb.org/
Memcachedb = memcache + Berkeley DB
Memcachedb是一款支持高并发的分布式持久存储系统,对任何原有memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储的。
前端:memcached的网络层
后端:Berkeley DB存储
写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。
读速度:从本地服务器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。
• 支持的memcache命令
get, set, add, replace
incr, decr
delete
stats
flush_all
• 私有命令
db_checkpoint, db_archive
db_ismaster, db_whoismaster (for replication)
编译及安装方法:
http://blog.csdn.net/simonlsy/archive/2008/01/07/2027940.aspx
ncache
协议:New BSD License
作者:shinepf, shuiyang
团队:新浪互动社区事业部──博客产品
网址:http://code.google.com/p/ncache/
ncache是一款基于nginx的缓存系统,比Squid更快更高效。
01
协议:New BSD License
作者:stvchu, gary.caokai, forever.sky81
团队:新浪互动社区事业部──博客产品
网址:http://www.memcachedb.org/
Memcachedb = memcache + Berkeley DB
Memcachedb是一款支持高并发的分布式持久存储系统,对任何原有memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储的。
前端:memcached的网络层
后端:Berkeley DB存储
写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。
读速度:从本地服务器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。
• 支持的memcache命令
get, set, add, replace
incr, decr
delete
stats
flush_all
• 私有命令
db_checkpoint, db_archive
db_ismaster, db_whoismaster (for replication)
编译及安装方法:
http://blog.csdn.net/simonlsy/archive/2008/01/07/2027940.aspx
ncache
协议:New BSD License
作者:shinepf, shuiyang
团队:新浪互动社区事业部──博客产品
网址:http://code.google.com/p/ncache/
ncache是一款基于nginx的缓存系统,比Squid更快更高效。
01
Nginx 0.5.33 + PHP 5.2.5(FastCGI)搭建胜过Apache 10倍的Web服务器(第2版)[原创]
[ 2007-12-3 18:31 | by 张宴 ]
本文已有最新版本:
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v2.1 最后修改:2008.02.27 转载请注明出处:http://blog.zyan.cc]
前言:本文为我2007年9月写过的文章《Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器》的第2版,经过了多台服务器的测试,修正了PHP iconv和gd库冲突的BUG,增加了PHP mcrypt、memcache扩展,修改了PHP和Nginx编译参数,优化了Nginx配置文件,添加了部分功能。
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 的中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。
在3万并发连接下,访问Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):
以下为 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和64个php-cgi进程时的系统负载情况:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.4)
一、获取相关开源程序:
1、下载程序源码包到当前目录:
本文中提到的所有开源软件为截止到2007年11月25日的最新稳定版。我将它们打了两个压缩包。
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v2.1 最后修改:2008.02.27 转载请注明出处:http://blog.zyan.cc]
前言:本文为我2007年9月写过的文章《Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器》的第2版,经过了多台服务器的测试,修正了PHP iconv和gd库冲突的BUG,增加了PHP mcrypt、memcache扩展,修改了PHP和Nginx编译参数,优化了Nginx配置文件,添加了部分功能。
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 的中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。
在3万并发连接下,访问Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):
以下为 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和64个php-cgi进程时的系统负载情况:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.4)
一、获取相关开源程序:
1、下载程序源码包到当前目录:
本文中提到的所有开源软件为截止到2007年11月25日的最新稳定版。我将它们打了两个压缩包。
Nginx 简单的负载均衡配置示例[原创]
[ 2007-10-29 20:50 | by 张宴 ]
www.zyan.cc 和 blog.zyan.cc 域名均指向 Nginx 所在的服务器IP。
用户访问http://www.zyan.cc,将其负载均衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。
用户访问http://blog.zyan.cc,将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。
以下为配置文件nginx.conf:
用户访问http://www.zyan.cc,将其负载均衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。
用户访问http://blog.zyan.cc,将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。
以下为配置文件nginx.conf:
Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器[原创]
[ 2007-9-24 18:56 | by 张宴 ]
本文已有最新版本:
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v1.3 最后修改:2007.11.06 转载请注明出处:http://blog.zyan.cc]
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 的中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
以下是 Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 服务器在3万并发连接下的TCP状况:
各种状态TCP连接数如下(各项值所代表的含义见我的另一篇文章《查看Apache并发请求数及其TCP连接状态》):
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗100M内存(20MB*10=100M),开启的250个php-cgi进程消耗1G内存(4MB*250≈1GB),加上系统自身消耗的内存,总共才消耗2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才100M。在开启25个php-cgi进程的情况下,每分钟的处理能力只比开启250个php-cgi进程时低了不到一半。
以下为 Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和250个php-cgi进程时的系统负载情况:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.4)
一、获取相关开源程序:
1、下载程序源码包到当前目录:
本文中提到的所有开源软件为截止到2007年9月21日的最新稳定版。我将它们打了两个压缩包。
请点击《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)》
[文章作者:张宴 本文版本:v1.3 最后修改:2007.11.06 转载请注明出处:http://blog.zyan.cc]
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 的中文维基:http://wiki.codemongers.com/NginxChs
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
以下是 Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 服务器在3万并发连接下的TCP状况:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
各种状态TCP连接数如下(各项值所代表的含义见我的另一篇文章《查看Apache并发请求数及其TCP连接状态》):
引用
LAST_ACK 1
SYN_RECV 991
CLOSE_WAIT 1
ESTABLISHED 18789
FIN_WAIT1 1478
FIN_WAIT2 181
TIME_WAIT 506
SYN_RECV 991
CLOSE_WAIT 1
ESTABLISHED 18789
FIN_WAIT1 1478
FIN_WAIT2 181
TIME_WAIT 506
根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。
而这台 Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗100M内存(20MB*10=100M),开启的250个php-cgi进程消耗1G内存(4MB*250≈1GB),加上系统自身消耗的内存,总共才消耗2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才100M。在开启25个php-cgi进程的情况下,每分钟的处理能力只比开启250个php-cgi进程时低了不到一半。
以下为 Nginx 0.5.31 + PHP 5.2.4 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和250个php-cgi进程时的系统负载情况:
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.4)
一、获取相关开源程序:
1、下载程序源码包到当前目录:
本文中提到的所有开源软件为截止到2007年9月21日的最新稳定版。我将它们打了两个压缩包。
我的技术文章与计算机作品汇总页[原创]
[ 2007-8-14 20:04 | by 张宴 ]
我的技术文章与计算机作品汇总页
张宴(本页网址:http://blog.zyan.cc/tech/)
文章推荐级别:最高 较高 普通
★ Apache、Nginx及其他Web服务器
● [文章] Nginx虚拟主机多server_name的顺序问题 [作者:张宴]
● [文章] Nginx+PHP+MySQL双机互备、全自动切换方案 [作者:张宴]
● [文章] Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化 [作者:张宴]
● [文章] 使用Nginx轻松实现开源负载均衡──9月20日在ChinaUnix技术沙龙上的演讲PPT [作者:张宴]
● [文章] Nginx 0.7.x + PHP 5.2.8(FastCGI)搭建胜过Apache十倍的Web服务器(第4版) [作者:张宴]
● [文章] 解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误 [作者:张宴]
● [文章] 使用Nginx作为Web服务器的国内网站 [作者:张宴]
● [文章] Nginx 0.6.31 + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第3版) [作者:张宴]
● [文章] 为Apache编译添加mod_expires模块出错的解决笔记 [作者:张宴]
● [文章] 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求 [作者:张宴]
● [文章] Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒” [作者:张宴]
● [文章] 视频:Nginx versus Apache (两者的对比)
● [文章] Nginx 0.5.33 + PHP 5.2.5(FastCGI)搭建胜过Apache 10倍的Web服务器(第2版) [作者:张宴]
● [文章] Nginx 简单的负载均衡配置示例 [作者:张宴]
● [文章] Nginx 0.5.31 + PHP 5.2.4搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器 [作者:张宴]
● [文章] 为Apache配置mod_deflat压缩输出 [作者:张宴]
● [文章] 修改Linux内核参数,减少TCP连接中的TIME-WAIT sockets [作者:张宴]
● [文章] 查看Apache并发请求数及其TCP连接状态 [作者:张宴]
● [文章] AutoAPM--Linux下自动编译Apache+PHP+MySQL脚本 [作者:张宴]
● [文章] Linux下Apache日志分析工具--AWStats安装使用 [作者:张宴]
★ PHP配置与优化
● [文章] 利用Xdebug分析PHP程序,找出性能瓶颈 [作者:张宴]
● [文章] 安装及配置eaccelerator-0.9.5加速PHP-5.2.1 [作者:张宴]
● [文章] Linux下为RPM方式安装的PHP添加GD库支持 [作者:张宴]
★ MySQL数据库
● [文章] 快捷启动、停止、重启、杀死指定端口MySQL进程的脚本 [作者:张宴]
● [文章] MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档 [作者:张宴]
● [文章] 使用Google的开源TCMalloc库,提高MySQL在高并发情况下的性能 [作者:张宴]
● [文章] MySQL数据库服务器在Flickr、Fotolog、Wkipedia、Facebook等国际知名网站中的使用数量 [作者:张宴]
● [文章] 命令行方式管理MySQL数据库实例 [作者:张宴]
● [文章] MySQL中将字符串aaa批量替换为bbb的SQL语句 [作者:张宴]
● [文章] phpMyAdmin之一:可管理多台远程MySQL服务器的phpMyAdmin 2.10.2 [作者:张宴]
● [文章] phpMyAdmin之二:修改phpMyAdmin使其能够管理多台远程MySQL服务器 [作者:张宴]
● [文章] MySQL数据库故障解决──修复损坏的表 [作者:张宴]
★ Squid、Varnish、Memcached及其他缓存服务器
● [文章] 百度、新浪、Mixi、Apache社区赞助的开源key-value分布式存储系统 [作者:张宴]
● [文章] Memcached的代理服务器软件:magent使用小记 [作者:张宴]
● [文章] 利用shell命令操作Memcached [作者:张宴]
● [文章] 利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统 [作者:张宴]
● [文章] MySQL Memcache_engine的安装与使用 [作者:张宴]
● [源码] dbcached──“分布式 key-value 数据库内存缓存系统” [作者:张宴]
● [文章] 减少Linux下Squid服务器的TIME_WAIT套接字数量 [作者:张宴]
● [文章] 使用Varnish代替Squid做网站缓存加速器的详细解决方案 [作者:张宴]
● [文章] 找到一款批量清除Squid缓存的小工具 [作者:张宴]
● [文章] 初步试用Squid的替代产品──Varnish Cache网站加速器 [作者:张宴]
● [书籍] Squid中文权威指南 (在线版) (PDF下载) [作者:彭勇华]
● [文章] 清除指定squid缓存文件的脚本 [作者:张宴]
★ 其他
● [文章] 我的开源PHP中文分词扩展:PHPCWS 1.0.0 [作者:张宴]
● [文章] 一款不错的Linux命令行下的FTP客户端软件 [作者:张宴]
● [文章] 亿级数据的高并发通用搜索引擎架构设计 [作者:张宴]
● [文章] Linux下简单限制网卡的带宽 [作者:张宴]
● [文章] 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计 [作者:张宴]
● [文章] Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现 [作者:张宴]
● [文章] IE浏览器下同一网页多图片显示的瓶颈与优化 [作者:张宴]
● [文章] 又一个新浪UNIX开源软件项目──xbayDNS [项目团队:新浪研发中心──系统研发]
● [文章] 新浪发起的UNIX开源软件项目 [项目团队:新浪互动社区事业部──博客产品]
● [文章] YouTube 系统架构 [作者:Cuong Do & Kyle Cordes]
● [文章] 我所熟悉的网站负载均衡技术 [作者:张宴]
● [文章] Linux索引节点(inode)用满导致的一次故障 [作者:张宴]
● [文章] 一款不错的网站压力测试工具webbench [作者:张宴]
● [文章] IP别名+TCP转发+端口映射实现跨网络访问 [作者:张宴]
● [文章] Linux下快速搭建ntp时间同步服务器 [作者:张宴]
● [文章] Linux服务器监控系统 ServMon V1.1 [作者:张宴]
● [文章] Linux服务器监控系统 ServMon V1.0 [作者:张宴]
● [书籍] 针对服务器运行环境安装CentOS 4.X Linux [作者:张宴]
● [文章] 使用Linux的rsync命令实现:多服务器镜像同步 [作者:张宴]
● [文章] 用rsync实现网站镜像和备份
● [文章] Fedora Core 4.0 简体中文语言包的安装 [作者:张宴]
★ Linux命令与shell脚本
● [文章] PHPSH:Facebook开发的PHP Shell的安装与使用 [作者:张宴]
● [文章] PHP多进程并发控制的测试用例 [作者:张宴]
硬件设备
★ 负载均衡交换机
● [文章] 利用NetScaler和自行编写的健康检查脚本,完美解决多台MySQL Slave数据库的负载均衡 [作者:张宴]
● [文章] F5 BIG-IP负载均衡器配置实例与Web管理界面体验 [作者:张宴]
编程语言
★ PHP/JavaScript编程
● [文章] AJAXCDR:利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求 [作者:张宴]
● [文章] 支持MSNP15协议与离线消息的PHP MSN Class,可实现MSN机器人 [作者:张宴]
● [文章] 同一域名对应多个IP时,PHP获取远程网页内容的函数 [作者:张宴]
● [文章] 通过浏览器从SVN更新代码到Linux服务器的指定目录 [作者:张宴]
● [文章] 一个发送HTML邮件的PHP函数 [作者:张宴]
● [文章] 采用curl库在PHP程序之间传递数组 [作者:张宴]
● [文章] PHP截取中文字符串不出现?号的解决方法 [作者:张宴]
● [文章] PHP XML Library:一个不错的PHP XML操作类
● [文章] PHP中常用的字符串函数
● [文章] 钢笔手写体生成工具(PHP)V1.0 [作者:张宴]
● [文章] PHP实现http与https转化 [作者:张宴]
● [文章] 用GD库生成高质量的缩略图片
● [文章] 部分PHP问题总结
★ HTML/JS
● [文章] dp.SyntaxHighlighter介绍:在网页中加亮显示源代码的工具 [作者:张宴]
● [文章] IE浏览器flash控件的激活方式介绍 [作者:张宴]
● [文章] 防止电子邮件地址被搜索到的新方法 [作者:张宴]
● [文章] 网页制作:带有滚动条的表格 [作者:张宴]
Windows 2000/XP/2003/Vista
★ 软件分享
● [下载] PHPChina.com旗下的开源技术杂志《PHPer》第12期
● [网站] UnixSNS──Linux/Unix技术工程师社交网络
● [网站] 一个分类搜集了众多开源软件官方网址的站点
● [下载] 一款不错的开源密码管理软件──KeePass
● [下载] PHP编程的好工具:《PHP Designer 2007 专业版》
● [下载] 可以上传、下载文件的SSH客户端软件--SecureCRT绿色版
★ 其他
● [文章] 再谈Dr.COM宽带认证客户端共享上网破解V3.46(d13) [作者:张宴]
● [文章] 软件测试用例(Test Case)设计 [作者:Vince]
● [文章] IE7浏览器简体中文版的安装、设置和使用方法(并介绍了非正版Windows用户如何安装IE7) [作者:张宴]
● [文章] 如何寻找联想电脑驱动程序 [作者:张宴]
● [文章] Microsoft SQL Server数据库的备份与恢复 [作者:张宴]
● [文章] 解决IE浏览器打不开的办法 [作者:张宴]
个人计算机作品
★ 可下载或开放源代码的作品
● [软件] APMServ 拥有图形界面的快速搭建Apache、PHP、MySQL、ASP、Perl网站服务器平台的绿色软件
[作者:张宴]
● [软件] 《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件 [作者:张宴]
● [插件] MySQL中文全文索引插件 mysqlcft 1.0.0 [作者:张宴]
● [源码] dbcached──“分布式 key-value 数据库内存缓存系统” [作者:张宴]
● [源码] Linux服务器监控系统 ServMon V1.1 [作者:张宴]
● [源码] Linux服务器监控系统 ServMon V1.0 [作者:张宴]
● [书籍] 针对服务器运行环境安装CentOS 4.X Linux 图文幻灯电子书 [作者:张宴]
● [源码] 钢笔手写体生成工具(PHP)V1.0 [作者:张宴]
● 更多>>>
★ 只提供部分源代码和信息的作品
● [架构] 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计 [作者:张宴]
● [作品] Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现 [作者:张宴]
● [架构] 以最少的Web服务器达到最大的性能──“互联星空播客” [作者:张宴]
● [演示] 大学期间开发的中南民族大学学生管理信息系统 [作者:张宴]
● [演示] 大学期间为北京博卡先锋软件开发有限公司定制开发的SAPM软件 [作者:张宴]
● [硬件] 自行打造的袖珍电脑主机 [作者:张宴]
● 更多>>>
本页内容将陆续增加修改。最后修改时间:2009年03月11日