<![CDATA[张宴的博客]]> http://www.lukangtou.cn/index.php zh-cn http://www.lukangtou.cn/phpts/ <![CDATA[PHPTSQ一键免Ҏ?Nginx + PHP + MySQL + Redis + Memcached |站、APP、小E序服务器端q行环境]]> 张宴 <net@s135.com> Wed, 25 Dec 2019 14:03:28 +0000 http://www.lukangtou.cn/phpts/ APMServ ?PHPTSQ十q后隆重推出?br/>
  PHPTS 边缘计算协作服务器套Ӟ?Windows pȝ上一键搭?Nginx + PHP + MySQL + Memcached + Redis + MongoDB + InfluxDB {网站、APP、小E序服务器端q行环境的Y件?br/>
  它即可以q行在云服务器上用于生环境Q也能够q行在个人电脑上作ؓ~程开发环境。Q何个人和企业Q均可免费用,包括商用用途,q可与自有品集成发布?br/>
  PHPTS 未来更大的用途,是运行在本地服务器、PC台式机、笔记本电脑、工控机上,作ؓ边缘计算节点服务器,与摄像头、存储、音响、投屏、打印机、串口设备、工业设备、物联网l端互联互通,利用本地计算机、显卡实现AI人工q算、语韛_成、h脸识别、视频流分析、音视频转码Q不必购买各大公有云q_按次数、按旉、按使用量收费的昂贵计算型云服务Qƈ利用光U宽带?G|络与公有云互联Q组建私有云、؜合云?br/>
  ?020q?2?5?PHPTS 1.07 版本发布?br/>
  软g下蝲Q请讉K PHPTS 官方|站Q?a target="_blank">https://www.phpts.com/

  点击在新H口中浏览此囄

  PHPTS 1.06 版本Q集?Nginx 1.17.8、PHP 7.4.2、PHP 7.3.14、PHP 5.6.40、MySQL 8.0.19Qx64Q、Memcached 1.5.22、Redis 4.0.14Qx64Q、MongoDB 4.3.3Qx64Q、phpMyAdmin 5.0.1、Bash l端Qƈ可通过lg方式下蝲安装 InfluxDBQ时间序列数据库Q、HeidiSQLQMySQL客户端管理工P、Another.Redis.Desktop.ManagerQRedis客户端管理工P。推荐在64?Windows pȝ上安?PHPTS?br/>
  Nginx for PHPTS 是专门ؓ Windows UL的高q发版本Q采?Windows 输入输出完成端口QIOCPQ,媲美 Linux 下的 epoll?br/>
  相比?a >官方 Nginx Windows 版本仅支?1024 q接数、仅支持低效?SELECT/POLL 模型、仅支持单进E,PHPTS Windows 版本支持 32768 q接数、支?IOCP 模型、支持多q程能够充分利用多核 CPU。从?Nginx Windows 版本性能低下、不能用于生产环境成为历双Ӏ?br/>
  点击在新H口中浏览此囄

  PHPTS 软g功能界面截图

  Nginx 虚拟LQ?br/>
  点击在新H口中浏览此囄

  PHPQ?br/>
  点击在新H口中浏览此囄

  点击在新H口中浏览此囄

  MySQLQ?br/>
  点击在新H口中浏览此囄

  点击在新H口中浏览此囄

  MemcachedQ?br/>
  点击在新H口中浏览此囄

  RedisQ?br/>
  点击在新H口中浏览此囄

  InfluxDB 旉序列数据库:

  点击在新H口中浏览此囄

  MongoDB 面向文数据库:

  点击在新H口中浏览此囄

  Linux Bash 仿真l端Q?br/>
  点击在新H口中浏览此囄

  软g下蝲Q请讉K PHPTS 官方|站Q?a target="_blank">https://www.phpts.com/

............

Tags - , , , , , , , , , , , , ]]>
http://www.lukangtou.cn/nginx_php_v7/ <![CDATA[Nginx 1.5.2 + PHP 5.5.1 + MySQL 5.6.10 ?CentOS 下的~译安装]]> 张宴 <net@s135.com> Wed, 29 May 2013 03:53:11 +0000 http://www.lukangtou.cn/nginx_php_v7/
  http://blog.www.lukangtou.cn/nginx_php_v6

  1、安装NginxQ?br/>
mkdir -p /Data/tgz
cd /Data/tgz
yum install wget
yum install pcre
yum install openssl*
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make
yum -y install gd gd2 gd-devel gd2-devel
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
ulimit -SHn 65535
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz
tar zxvf pcre-8.32.tar.gz
cd pcre-8.32
./configure --prefix=/Data/apps/pcre
make && make install
cd ../

wget http://nginx.org/download/nginx-1.5.2.tar.gz
tar zxvf nginx-1.5.2.tar.gz
cd nginx-1.5.2
./configure --user=www --group=www --prefix=/Data/apps/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/Data/tgz/pcre-8.32 --with-http_realip_module --with-http_image_filter_module
make
make install
cd ../


............

Tags - , , , , ]]>
http://www.lukangtou.cn/post/485/ <![CDATA[被CCd]]> 张宴 <net@s135.com> Tue, 21 May 2013 03:58:24 +0000 http://www.lukangtou.cn/post/485/ cubieboard 上,恢复了服务?M的ADSLQ上行只?12K带宽Q速度会慢点,{有旉了,图片、文件放在别的地斏V? ]]> http://www.lukangtou.cn/file_get_contents/ <![CDATA[PHP-CGI q程 CPU 100% ?file_get_contents 函数的关p]]> 张宴 <net@s135.com> Fri, 05 Aug 2011 07:33:05 +0000 http://www.lukangtou.cn/file_get_contents/ http://blog.www.lukangtou.cn/file_get_contents/]

  有时候,q行 Nginx、PHP-CGI(php-fpm) Web服务?Linux 服务器,H然pȝ负蝲上升Q?top 命o查看Q很?php-cgi q程 CPU 使用率接q?00%。后来,我通过跟踪发现Q这cL늚出现Q跟 PHP ?file_get_contents() 函数有着密切的关pR?br/>
  大、中型网站中Q基?HTTP 协议?API 接口调用Q是家常侉K。PHP E序员们喜欢使用单便L file_get_contents("http://example.com/") 函数Q来获取一?URL 的返回内容,但是Q如?http://example.com/ q个|站响应~慢Qfile_get_contents() ׃一直卡在那儿,不会时?br/>
  我们知道Q在 php.ini 中,有一个参?max_execution_time 可以讄 PHP 脚本的最大执行时_但是Q在 php-cgi(php-fpm) 中,该参C会v效。真正能够控?PHP 脚本最大执行时间的?php-fpm.conf 配置文g中的以下参数Q?br/>  默认gؓ 0 U,也就是说QPHP 脚本会一直执行下厅R这P当所有的 php-cgi q程都卡?file_get_contents() 函数Ӟq台 Nginx+PHP ?WebServer 已经无法再处理新?PHP h了,Nginx 给用户q回?02 Bad Gateway”。修改该参数Q设|一?PHP 脚本最大执行时间是必要的,但是Q治标不L。例如改?<value name="request_terminate_timeout">30s</value>Q如果发?file_get_contents() 获取|页内容较慢的情况,q就意味着 150 ?php-cgi q程Q每U钟只能处理 5 个请求,WebServer 同样很难避免?02 Bad Gateway”?br/>
  要做到彻底解冻I只能?PHP E序员们Ҏ直接使用 file_get_contents("http://example.com/") 的习惯,而是E微修改一下,加个时旉Q用以下方式来实?HTTP GET h。要是觉得麻烦,可以自行以下代码封装成一个函数?br/>  当然Q导?php-cgi q程 CPU 100% 的原因不只有q一U,那么Q怎么定?file_get_contents() 函数D的呢Q?br/>
  首先Q?top 命o查看 CPU 使用率较高的 php-cgi q程?br/>
top - 10:34:18 up 724 days, 21:01,  3 users,  load average: 17.86, 11.16, 7.69
Tasks: 561 total,  15 running, 546 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  4.2%sy,  0.0%ni, 89.4%id,  0.2%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   8100996k total,  4320108k used,  3780888k free,   772572k buffers
Swap:  8193108k total,    50776k used,  8142332k free,   412088k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                              
10747 www       18   0  360m  22m  12m R 100.6 0.3    0:02.60 php-cgi                                                                                                              
10709 www       16   0  359m  28m  17m R 96.8  0.4    0:11.34 php-cgi                                                                                                              
10745 www       18   0  360m  24m  14m R 94.8  0.3    0:39.51 php-cgi                                                                                                              
10707 www       18   0  360m  25m  14m S 77.4  0.3    0:33.48 php-cgi                                                                                                              
10782 www       20   0  360m  26m  15m R 75.5  0.3    0:10.93 php-cgi                                                                                                              
10708 www       25   0  360m  22m  12m R 69.7  0.3    0:45.16 php-cgi                                                                                                              
10683 www       25   0  362m  28m  15m R 54.2  0.4    0:32.65 php-cgi                                                                                                              
10711 www       25   0  360m  25m  15m R 52.2  0.3    0:44.25 php-cgi                                                                                                              
10688 www       25   0  359m  25m  15m R 38.7  0.3    0:10.44 php-cgi                                                                                                              
10719 www       25   0  360m  26m  16m R  7.7  0.3    0:40.59 php-cgi

  扑օ中一?CPU 100% ?php-cgi q程?PIDQ用以下命o跟踪一下:
strace -p 10747

  如果屏幕昄Q?br/>
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
select(7, [6], [6], [], {15, 0})        = 1 (out [6], left {15, 0})
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)

  那么Q就可以定?file_get_contents() D的问题了?br/>Tags - , , , , ]]>
http://www.lukangtou.cn/nginx_0day/ <![CDATA[再提供一U解决Nginx文gcd错误解析漏洞的方法]]> 张宴 <net@s135.com> Fri, 21 May 2010 10:46:17 +0000 http://www.lukangtou.cn/nginx_0day/ 2010.05.24 转蝲h明原文链接:http://blog.www.lukangtou.cn/nginx_0day/]

  注:2010q??3?4:00前阅L文的朋友Q请按目前v1.1版本的最新配|进行设|?br/>
  昨日Q?0Sec 爆出Nginxh严重?day漏洞Q详见?a target="_blank">Nginx文gcd错误解析漏洞》。只要用h有上传图片权限的Nginx+PHP服务器,有被入늚可能?br/>
  其实此漏zƈ不是Nginx的漏z,而是PHP PATH_INFO的漏z,详见Q?a target="_blank">http://bugs.php.net/bug.php?id=50852&edit=1

  例如用户上传了一张照片,讉K地址?a target="_blank">http://www.domain.com/images/test.jpgQ而test.jpg文g内的内容实际上是PHP代码Ӟ通过http://www.domain.com/images/test.jpg/abc.phpp够执行该文g内的PHP代码?br/>
  |上提供的时解x法有Q?br/>
  Ҏ①、修改php.iniQ设|cgi.fix_pathinfo = 0;然后重启php-cgi。此修改会媄响到使用PATH_INFO伪静态的应用Q例如我以前博文的URLQ?a href="http://blog.www.lukangtou.cn/read.php/348.htm" target="_blank">http://blog.www.lukangtou.cn/read.php/348.htm ׃能访问了?br/>
  Ҏ②、在nginx的配|文件添加如下内容后重启Qif ( $fastcgi_script_name ~ \..*\/.*php ) {return 403;}。该匚w会媄响类?http://www.domain.com/software/5.0/test.phpQ?.0为目录)Q?a target="_blank">http://www.domain.com/goto.php/phpwind 的URL讉K?br/>
  Ҏ③、对于存储图片的location{...}Q或虚拟Lserver{...}Q只允许U静态访问,不配|PHP讉K。例如在金山逍遥|论坛、SNS上传的图片、附Ӟ会传送到专门的图片、附件存储服务器集群上(pic.xoyo.comQ,q组服务器提供纯静态服务,无Q何动态PHP配置。各大网站几乎全部进行了囄服务器分,因此Nginx的此ơ漏z对大型|站影响不大?br/>


  本h再提供一U修改nginx.conf配置文g的时解x法,兼容?a href="http://blog.www.lukangtou.cn/demo/0day/phpinfo.php/test" target="_blank">http://blog.www.lukangtou.cn/demo/0day/phpinfo.php/test”的PATH_INFO伪静态,拒绝?a href="http://blog.www.lukangtou.cn/demo/0day/phpinfo.jpg/test.php" target="_blank">http://blog.www.lukangtou.cn/demo/0day/phpinfo.jpg/test.php”的漏洞dQ?br/>
location ~* .*\.php($|/)
{
      if ($request_filename ~* (.*)\.php) {
            set $php_url $1;
      }
      if (!-e $php_url.php) {
            return 403;
      }

      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
}


  也可以下内容写在fcgi.conf文g中,便于多个虚拟L引用Q?br/>
if ($request_filename ~* (.*)\.php) {
    set $php_url $1;
}
if (!-e $php_url.php) {
    return 403;
}

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $uri;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;




  附:文章修改历史

  ?[2010q?5?1日] [Version 1.0] 新徏

  ?[2010q?5?3日] [Version 1.1] 针对|友michael提出的“如果构造一个Ş?..trojan.jpg/dummy.php/?abcd=1Q似乎可以绕q防范的nginx配置”,q行了配|修改,防范了此cL况发生。提供测试的URL如下Q拒l漏z访问:
  http://blog.www.lukangtou.cn/demo/0day/phpinfo.jpg Q里面是PHP代码Q?br/>  http://blog.www.lukangtou.cn/demo/0day/phpinfo.jpg/.php
  http://blog.www.lukangtou.cn/demo/0day/phpinfo.jpg/dummy.php
  http://blog.www.lukangtou.cn/demo/0day/phpinfo.jpg/dummy.php/?abcd=1

  同时兼容正常的PATH_INFO伪静态请求,试URL如下Q?br/>  http://blog.www.lukangtou.cn/demo/0day/phpinfo.php Q这是正常的PHP文gQ?br/>  http://blog.www.lukangtou.cn/demo/0day/phpinfo.php/test
  http://blog.www.lukangtou.cn/demo/0day/phpinfo.php/news123.html
  http://blog.www.lukangtou.cn/read.php/348.htm

  ?[2010q?5?4日] [Version 1.2] 修正文字描述错误?br/>
Tags - , , ]]>
http://www.lukangtou.cn/post/441/ <![CDATA[通过Nginx使全站页面变灎ͼ哀悼玉树地震遇难者]]> 张宴 <net@s135.com> Tue, 20 Apr 2010 07:52:56 +0000 http://www.lukangtou.cn/post/441/
引用
  新华|北??0日电 国务院决定,辑օ国各族h民对青v玉树地震遇难同胞的深切哀|2010q??1日D行全国哀悼活动,全国和驻外领馆下半旗志哀Q停止公共娱乐活动?/div>

  4?1日全国哀悼日Q将去除|站全站所有站点色彩(变灰Q,悼念遇难同胞Q愿死者安息?br/>
  金山逍遥|旗下站点众多,虽然官网都有l一的页头、页,但是Q还有一部分站点Q例如用户中心、注册充值页面、游戏客L内嵌|站、活动专题页{)头、页不相同。但是,所有站炚w用的都是Nginx服务器,95%以上的站炚wl过Nginx负蝲均衡服务器,因此只需要在Nginx负蝲均衡服务器上Q利用sub_filter指o在输出的HTML中增加一行:

<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style>


  可以实现在IE及IE内核览器下Q所有网站变灰色。步骤如下:

  1、重新编译NginxQ增加http_sub_module模块Q?br/>
wget http://nginx.org/download/nginx-0.8.35.tar.gz
tar zxvf nginx-0.8.35.tar.gz
cd nginx-0.8.35
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
make && make install
pkill -9 nginx
/usr/local/webserver/nginx/sbin/nginx



  2、在nginx.conf配置文g的http {...}大括号内增加以下两行Q?br/>
sub_filter  '</head>'  '<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style></head>';
sub_filter_once on;


  保存后,重新加蝲配置文gQ?br/>
/usr/local/webserver/nginx/sbin/nginx -t
/usr/local/webserver/nginx/sbin/nginx -s reload



  3、如果某些带有Flash的页面仍昄彩色Q或览器上下滚动条拖动时Flash FLV播放器变花(例如剑网3、剑侠世界官|分页Q,Flash改ؓJS输出Q本例ؓSWFObjectQ:
<script type="text/javascript" src="http://v.xoyo.com/site/v.xoyo.com/web/js/swf.js"></script>
<div id="video_content"></div>
<script type="text/javascript">
<!--
    var video_player_so = new SWFObject("http://api.v.xoyo.com/external/player.swf?autostart=true&config=http://api.v.xoyo.com/external/video-542.swf", "sotester", "439", "246", "7");
    video_player_so.addParam("wmode", "opaque");
    video_player_so.addParam("allowfullscreen","true");
    video_player_so.addParam("allowscriptaccess","always");
    video_player_so.write("video_content");
//-->
</script>


  q样Q整个页面,包括Flash播放器中的视频就都变灰色了?br/>
............

Tags - ]]>
http://www.lukangtou.cn/nginx_book/ <![CDATA[《实战NginxQ取代Apache的高性能Web服务器》已出版发行]]> 张宴 <net@s135.com> Tue, 23 Mar 2010 15:56:41 +0000 http://www.lukangtou.cn/nginx_book/   作者:张宴
  出版C:电子工业出版C?br/>  ISBNP9787121102479
  出版日期Q?010q?3?br/>  字数Q?30千字
  늠Q?52
  开本:16

  |上书城Q?/strong>
  卓越亚马逊:http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1270279433&asin=B003CHHHB8&sr=8-1
  当当|:http://product.dangdang.com/product.aspx?product_id=20807089&ref=search-0-A
  China-PubQ?a target="_blank">http://www.china-pub.com/196364
  电子工业出版C书城:http://www.phei.com.cn/bookshop/bookinfo.asp?bookcode=TP102470&booktype=main


  点击在新H口中浏览此囄

............

Tags - , , , , , , , , , , , , , , ]]>
http://www.lukangtou.cn/nginx_php_v6/ <![CDATA[Nginx 0.8.x + PHP 5.2.13QFastCGIQ搭qApache十倍的Web服务器(W?版)[原创]]]> 张宴 <net@s135.com> Thu, 04 Mar 2010 12:10:10 +0000 http://www.lukangtou.cn/nginx_php_v6/ 2010.07.26 转蝲h明原文链接:http://blog.www.lukangtou.cn/nginx_php_v6/]

  前言Q本文是我撰写的关于搭徏“Nginx + PHPQFastCGIQ”Web服务器的W?文章。本pd文章作ؓ国内最早详l介l?Nginx + PHP 安装、配|、用的资料之一Qؓ推动 Nginx 在国内的发展产生了积极的作用。本文可能不断更新小版本Q请C原文链接?a href="http://blog.www.lukangtou.cn/nginx_php_v6/" target="_blank">http://blog.www.lukangtou.cn/nginx_php_v6/”,获取最新内宏V第6文章主要介l了Nginx 0.8.x新的qx重启方式Q将PHP升C5.2.14Q修正了PEAR问题。另MySQL 5.1.x升C5.5.xpdQ配|文件变更较大?br/>
  链接Q?a href="post/297/" target="_blank">2007q?月的W??/a>》、?a href="post/314/" target="_blank">2007q?2月的W??/a>》、?a href="post/351/" target="_blank">2008q?月的W??/a>》、?a href="nginx_php_v4/" target="_blank">2008q?月的W??/a>》、?a href="nginx_php_v5/" target="_blank">2009q?月的W??/a>?br/>
  点击在新H口中浏览此囄

  Nginx ("engine x") 是一个高性能?HTTP 和反向代理服务器Q也是一?IMAP/POP3/SMTP 代理服务器?Nginx 是由 Igor Sysoev Z|斯讉K量第二的 Rambler.ru 站点开发的Q它已经在该站点q行过三年了。Igor 源代码以类BSD许可证的形式发布?br/>
  Nginx 越 Apache 的高性能和稳定性,使得国内使用 Nginx 作ؓ Web 服务器的|站也越来越多,其中包括新浪博客?a target="_blank">新浪播客?a target="_blank">|易新闻?a target="_blank">腾讯|?/a>?a target="_blank">搜狐博客{门L站频道,六间?/a>?a target="_blank">56.com{视频分享网站,Discuz!官方论坛?a target="_blank">水木C֌{知名论坛,盛大在线?a target="_blank">金山逍遥|?/a>{网l游戏网站,豆瓣?a target="_blank">Zh|?/a>?a target="_blank">YUPOO相册?a target="_blank">金山p?/a>?a target="_blank">q雷在线{新兴Web 2.0|站?br/>


  Nginx 的官方中文维基:http://wiki.nginx.org/NginxChs



  在高q发q接的情况下QNginx是Apache服务器不错的替代品。Nginx同时也可以作?层负载均衡服务器来用。根据我的测试结果,Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的q发q接敎ͼ相当于同{环境下Apache?0?/strong>?br/>
  Ҏ我的l验Q?GB内存的服务器+ApacheQprefork模式Q一般只能处?000个ƈ发连接,因ؓ它们占?GB以上的内存,q得为系l预?GB的内存。我曄有两台Apache服务器,因ؓ在配|文件中讄的MaxClients?000Q当Apacheq发q接数达?800ӞD服务器内存和SwapI间用满而崩溃?br/>
  而这?Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 服务器在3万ƈ发连接下Q开启的10个Nginxq程消?50M内存Q?5M*10=150MQ,开启的64个php-cgiq程消?280M内存Q?0M*64=1280MQ,加上pȝ自n消耗的内存Qd消耗不?GB内存。如果服务器内存较小Q完全可以只开?5个php-cgiq程Q这样php-cgi消耗的d存数?00M?br/>
  ?万ƈ发连接下Q访问Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 服务器的PHPE序Q仍焉度飞快。下图ؓNginx的状态监控页面,昄的活动连接数?8457Q关于Nginx的监控页配置Q会在本文接下来所l出的Nginx配置文g中写明)Q?br/>
  点击在新H口中浏览此囄

  我生产环境下的两台Nginx + PHP5QFastCGIQ服务器Q跑多个一般复杂的UPHP动态程序,单台Nginx + PHP5QFastCGIQ服务器跑PHP动态程序的处理能力已经过?span style="color: #FF0000;">700ơ请?U?/span>”,相当于每天可以承?000万(700*60*60*24=60480000Q的讉K量(更多信息见此Q,而服务器的系l负载也不高Q?br/>
  点击在新H口中浏览此囄

  2009q??日下?Q?0Q金山游戏《剑侠情~网l版叁》时维?时Q?a target="_blank">http://kefu.xoyo.com/gonggao/jx3/2009-09-03/750438.shtmlQ,大量玩家上官|,论坛、评论、客服等动态应用Nginx服务器集,每台服务器的Nginxzdq接数达?.8万,q是W者遇到的Nginx生环境最高ƈ发倹{?br/>
  点击在新H口中浏览此囄



  下面是用100个ƈ发连接分别去压生产环境中同一负蝲均衡器VIP下、提供相同服务的两台服务器,一CؓNginxQ另一CؓApacheQNginx每秒处理的请求数是Apache的两倍多QNginx服务器的pȝ负蝲、CPU使用率远低于ApacheQ?br/>
  你可以将q接数开?0000?0000Q去压Nginx和Apache上的phpinfo.phpQ这是用览器访问Nginx上的phpinfo.php一切正常,而访问Apache服务器的phpinfo.phpQ则是该|法显C?G内存的服务器Q即使再优化QApache也很隑֜“webbench -c 30000 -t 60 http://xxx.xxx.xxx.xxx/phpinfo.php”的压力情况下正常访问,而调整参C化后的Nginx可以?br/>
  webbench 下蝲地址Q?a href="http://blog.www.lukangtou.cn/post/288/" target="_blank">http://blog.www.lukangtou.cn/post/288/

  注意Qwebbench 做压力测试时Q该软g自n也会消耗CPU和内存资源,Z试准确Q请?webbench 安装在别的服务器上?br/>
  试l果Q?#### Nginx + PHP #####
引用
[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.21/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.21/phpinfo.php
100 clients, running 30 sec.

Speed=102450 pages/min, 16490596 bytes/sec.
Requests: 51225 susceed, 0 failed.

top - 14:06:13 up 27 days,  2:25,  2 users,  load average: 14.57, 9.89, 6.51
Tasks: 287 total,   4 running, 283 sleeping,   0 stopped,   0 zombie
Cpu(s): 49.9% us,  6.7% sy,  0.0% ni, 41.4% id,  1.1% wa,  0.1% hi,  0.8% si
Mem:   6230016k total,  2959468k used,  3270548k free,   635992k buffers
Swap:  2031608k total,     3696k used,  2027912k free,  1231444k cached


  试l果Q?####  Apache + PHP #####
引用
[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.27/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.27/phpinfo.php
100 clients, running 30 sec.

Speed=42184 pages/min, 31512914 bytes/sec.
Requests: 21092 susceed, 0 failed.

top - 14:06:20 up 27 days,  2:13,  2 users,  load average: 62.15, 26.36, 13.42
Tasks: 318 total,   7 running, 310 sleeping,   0 stopped,   1 zombie
Cpu(s): 80.4% us, 10.6% sy,  0.0% ni,  7.9% id,  0.1% wa,  0.1% hi,  0.9% si
Mem:   6230016k total,  3075948k used,  3154068k free,   379896k buffers
Swap:  2031608k total,    12592k used,  2019016k free,  1117868k cached




  Z么Nginx的性能要比Apache高得多?q得益于Nginx使用了最新的epollQLinux 2.6内核Q和kqueueQfreebsdQ网lI/O模型Q而Apache则用的是传l的select模型。目前Linux下能够承受高q发讉K的Squid、Memcached都采用的是epoll|络I/O模型?br/>
  处理大量的连接的dQApache所采用的select|络I/O模型非常低效。下面用一个比L解析Apache采用的select模型和Nginx采用的epoll模型q行之间的区别:

  假设你在大学MQ住的宿舍楼有很多间戉KQ你的朋友要来找你。select版宿大妈就会带着你的朋友挨个戉KLQ直到找C为止。而epoll版宿大妈会先记下每位同学的戉KP你的朋友来时Q只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来?0000个hQ都要找自己住这栋楼的同学时Qselect版和epoll版宿大妈,谁的效率更高Q不a自明。同理,在高q发服务器中Q轮询I/O是最耗时间的操作之一Qselect和epoll的性能谁的性能更高Q同样十分明了?br/>


  安装步骤Q?br/>  Q系l要求:Linux 2.6+ 内核Q本文中的Linux操作pȝ为CentOS 5.3Q另在RedHat AS4上也安装成功Q?br/>
............

Tags - , , , , , , , , , , , , , ]]>
http://www.lukangtou.cn/bo-blog_nginx_rewrite/ <![CDATA[Bo-Blog 2.1.1 ?Nginx Rewrite 规则[原创]]]> 张宴 <net@s135.com> Mon, 30 Nov 2009 05:04:30 +0000 http://www.lukangtou.cn/bo-blog_nginx_rewrite/ http://blog.www.lukangtou.cn/bo-blog_nginx_rewrite/]

  Bo-Blog是一N用PHP开发的单用户博客程序,本h的博客也采用的是Bo-BlogQ个得bo-blog的排版、易用性要比WordPress好得多,但扩展性不如WordPress?br/>
  很多朋友向我询问q,Bo-Blog的Nginx Rewrite规则如何写。由于Bo-Blog官网只提供了Apache的Rewrite规则Q这里,我将自己?Bo-Blog ?Apache Rewrite 规则转换而来?Bo-Blog 2.1.1 ?Nginx Rewrite 重写规则贴在此处Q供需要的朋友使用Q?br/>
引用
   if (!-e $request_filename)
   {
      rewrite ^/post/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?entryid=$1&page=$2&part=$3 last;
      rewrite ^/page/([0-9]+)/([0-9]+)/?$ /index.php?mode=$1&page=$2 last;
      rewrite ^/starred/([0-9]+)/?([0-9]+)?/?$ /star.php?mode=$1&page=$2 last;
      rewrite ^/category/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=category_$1&mode=$2&page=$3 last;
      rewrite ^/archiver/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=archive&cm=$1&cy=$2&mode=$3&page=$4 last;
      rewrite ^/date/([0-9]+)/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=showday_$1-$2-$3&mode=$4&page=$5 last;
      rewrite ^/user/([0-9]+)/?$ /view.php?go=user_$1 last;
      rewrite ^/tags/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /tag.php?tag=$1&mode=$2&page=$3 last;
      rewrite ^/component/id/([0-9]+)/?$ /page.php?pageid=$1 last;
      rewrite ^/component/([^/]+)/?$ /page.php?pagealias=$1 last;

      #Force redirection for old rules
      rewrite ^/read\.php/([0-9]+)\.htm$ http://$host/post/$1/ permanent;
      rewrite ^/post/([0-9]+)\.htm$ http://$host/post/$1/ permanent;
      rewrite ^/post/([0-9]+)\_([0-9]+)\.htm$ http://$host/post/$1/$2/ permanent;
      rewrite ^/post/([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/post/$1/$2/$3/ permanent;
      rewrite ^/index\_([0-9]+)\_([0-9]+)\.htm$ http://$host/page/$1/$2/ permanent;
      rewrite ^/star\_([0-9]+)\_([0-9]+)\.htm$ http://$host/starred/$1/$2/ permanent;
      rewrite ^/category\_([0-9]+)\.htm$ http://$host/category/$1/ permanent;
      rewrite ^/category\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/category/$1/$2/$3/ permanent;
      rewrite ^/archive\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/$1/$2/ permanent;
      rewrite ^/archive\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/$1/$2/$3/$4/ permanent;
      rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date/$1/$2/$3/ permanent;
      rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date/$1/$2/$3/$4/$5/ permanent;

      #Filename alias
      rewrite ^/([a-zA-Z0-9_-]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?blogalias=$1&page=$2&part=$3 last;
   }


  PSQ?009-12-01修正一处错误,之前文章中的if (!-x更换为if (!-e
Tags - , , , ]]>
http://www.lukangtou.cn/sd2c_nginx/ <![CDATA[2009-10-24在CSDNW三届Y件开?.0大会QSD2CQ的Nginx演讲PPT[原创]]]> 张宴 <net@s135.com> Mon, 26 Oct 2009 05:24:26 +0000 http://www.lukangtou.cn/sd2c_nginx/ 点击在新H口中浏览此囄

  CSDN SD2.0大会官网Q?a target="_blank">http://sd2china.csdn.net/

  新浪U技SD2.0大会专题Q?a target="_blank">http://tech.sina.com.cn/focus/CSDN_2009/

  24日Web分场Q?a target="_blank">http://sd2china.csdn.net/schedule#schedule3

  《高性能Web服务器Nginx及相x技术的应用实践》PPT下蝲Q?br/>点击q里下蝲文g

  FLash版本在线览Q?br/>
此处包含一个多媒体文gQ请用网|式查看?br/>


Tags - , , , ]]>
http://www.lukangtou.cn/nginx_php_v5/ <![CDATA[Nginx 0.8.x + PHP 5.2.10QFastCGIQ搭qApache十倍的Web服务器(W?版)[原创]]]> 张宴 <net@s135.com> Wed, 06 May 2009 05:40:31 +0000 http://www.lukangtou.cn/nginx_php_v5/ 本文已有最新版本:


  L?/span>?a href="http://blog.www.lukangtou.cn/nginx_php_v6/" target="_blank">Nginx 0.8.x + PHP 5.2.13QFastCGIQ搭qApache十倍的Web服务器(W?版)?/span>




  [文章作者:张宴 本文版本Qv5.5 最后修改:2009.09.18 转蝲h明原文链接:http://blog.www.lukangtou.cn/nginx_php_v5/]

  前言Q本文是我撰写的关于搭徏“Nginx + PHPQFastCGIQ”Web服务器的W?文章。本pd文章作ؓ国内最早详l介l?Nginx + PHP 安装、配|、用的资料之一Qؓ推动 Nginx 在国内的发展产生了积极的作用。这是一关于Nginx 0.7.xpd版本的文章,安装、配|方式与W?文章相差不大,但增加了MySQL安装配置的信息?strong>PHP 5.2.10 ?php-fpm 补丁
。Nginx 0.7.xpd版本虽然为开发版Q但在很多大型网站的生环境中已l用?br/>
  链接Q?a href="post/297/" target="_blank">2007q?月的W??/a>》、?a href="post/314/" target="_blank">2007q?2月的W??/a>》、?a href="post/351/" target="_blank">2008q?月的W??/a>》、?a href="nginx_php_v4/" target="_blank">2008q?月的W??/a>?br/>
  点击在新H口中浏览此囄

  Nginx ("engine x") 是一个高性能?HTTP 和反向代理服务器Q也是一?IMAP/POP3/SMTP 代理服务器?Nginx 是由 Igor Sysoev Z|斯讉K量第二的 Rambler.ru 站点开发的Q它已经在该站点q行过两年半了。Igor 源代码以类BSD许可证的形式发布?br/>
  Nginx 越 Apache 的高性能和稳定性,使得国内使用 Nginx 作ؓ Web 服务器的|站也越来越多,其中包括新浪博客?a target="_blank">新浪播客?a target="_blank">|易新闻{门L站频道,六间?/a>?a target="_blank">56.com{视频分享网站,Discuz!官方论坛?a target="_blank">水木C֌{知名论坛,豆瓣?a target="_blank">YUPOO相册?a target="_blank">内SNS?a target="_blank">q雷在线{新兴Web 2.0|站?br/>


  Nginx 的官方中文维基:http://wiki.nginx.org/NginxChs



  在高q发q接的情况下QNginx是Apache服务器不错的替代品。Nginx同时也可以作?层负载均衡服务器来用。根据我的测试结果,Nginx 0.8.15 + PHP 5.2.10 (FastCGI) 可以承受3万以上的q发q接敎ͼ相当于同{环境下Apache?0?/strong>?br/>
  Ҏ我的l验Q?GB内存的服务器+ApacheQprefork模式Q一般只能处?000个ƈ发连接,因ؓ它们占?GB以上的内存,q得为系l预?GB的内存。我曄有两台Apache服务器,因ؓ在配|文件中讄的MaxClients?000Q当Apacheq发q接数达?800ӞD服务器内存和SwapI间用满而崩溃?br/>
  而这?Nginx 0.8.15 + PHP 5.2.10 (FastCGI) 服务器在3万ƈ发连接下Q开启的10个Nginxq程消?50M内存Q?5M*10=150MQ,开启的64个php-cgiq程消?280M内存Q?0M*64=1280MQ,加上pȝ自n消耗的内存Qd消耗不?GB内存。如果服务器内存较小Q完全可以只开?5个php-cgiq程Q这样php-cgi消耗的d存数?00M?br/>
  ?万ƈ发连接下Q访问Nginx 0.8.15 + PHP 5.2.10 (FastCGI) 服务器的PHPE序Q仍焉度飞快。下图ؓNginx的状态监控页面,昄的活动连接数?8457Q关于Nginx的监控页配置Q会在本文接下来所l出的Nginx配置文g中写明)Q?br/>
  点击在新H口中浏览此囄

  我生产环境下的两台Nginx + PHP5QFastCGIQ服务器Q跑多个一般复杂的UPHP动态程序,单台Nginx + PHP5QFastCGIQ服务器跑PHP动态程序的处理能力已经过?span style="color: #FF0000;">700ơ请?U?/span>”,相当于每天可以承?000万(700*60*60*24=60480000Q的讉K量(更多信息见此Q,而服务器的系l负载也不高Q?br/>
  点击在新H口中浏览此囄

  2009q??日下?Q?0Q金山游戏《剑侠情~网l版叁》时维?时Q?a target="_blank">http://kefu.xoyo.com/gonggao/jx3/2009-09-03/750438.shtmlQ,大量玩家上官|,论坛、评论、客服等动态应用Nginx服务器集,每台服务器的Nginxzdq接数达?.8万,q是W者遇到的Nginx生环境最高ƈ发倹{?br/>
  点击在新H口中浏览此囄



  下面是用100个ƈ发连接分别去压生产环境中同一负蝲均衡器VIP下、提供相同服务的两台服务器,一CؓNginxQ另一CؓApacheQNginx每秒处理的请求数是Apache的两倍多QNginx服务器的pȝ负蝲、CPU使用率远低于ApacheQ?br/>
  你可以将q接数开?0000?0000Q去压Nginx和Apache上的phpinfo.phpQ这是用览器访问Nginx上的phpinfo.php一切正常,而访问Apache服务器的phpinfo.phpQ则是该|法显C?G内存的服务器Q即使再优化QApache也很隑֜“webbench -c 30000 -t 60 http://xxx.xxx.xxx.xxx/phpinfo.php”的压力情况下正常访问,而调整参C化后的Nginx可以?br/>
  webbench 下蝲地址Q?a href="http://blog.www.lukangtou.cn/post/288/" target="_blank">http://blog.www.lukangtou.cn/post/288/

  注意Qwebbench 做压力测试时Q该软g自n也会消耗CPU和内存资源,Z试准确Q请?webbench 安装在别的服务器上?br/>
  试l果Q?#### Nginx + PHP #####
引用
[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.21/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.21/phpinfo.php
100 clients, running 30 sec.

Speed=102450 pages/min, 16490596 bytes/sec.
Requests: 51225 susceed, 0 failed.

top - 14:06:13 up 27 days,  2:25,  2 users,  load average: 14.57, 9.89, 6.51
Tasks: 287 total,   4 running, 283 sleeping,   0 stopped,   0 zombie
Cpu(s): 49.9% us,  6.7% sy,  0.0% ni, 41.4% id,  1.1% wa,  0.1% hi,  0.8% si
Mem:   6230016k total,  2959468k used,  3270548k free,   635992k buffers
Swap:  2031608k total,     3696k used,  2027912k free,  1231444k cached


  试l果Q?####  Apache + PHP #####
引用
[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.27/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.27/phpinfo.php
100 clients, running 30 sec.

Speed=42184 pages/min, 31512914 bytes/sec.
Requests: 21092 susceed, 0 failed.

top - 14:06:20 up 27 days,  2:13,  2 users,  load average: 62.15, 26.36, 13.42
Tasks: 318 total,   7 running, 310 sleeping,   0 stopped,   1 zombie
Cpu(s): 80.4% us, 10.6% sy,  0.0% ni,  7.9% id,  0.1% wa,  0.1% hi,  0.9% si
Mem:   6230016k total,  3075948k used,  3154068k free,   379896k buffers
Swap:  2031608k total,    12592k used,  2019016k free,  1117868k cached




  Z么Nginx的性能要比Apache高得多?q得益于Nginx使用了最新的epollQLinux 2.6内核Q和kqueueQfreebsdQ网lI/O模型Q而Apache则用的是传l的select模型。目前Linux下能够承受高q发讉K的Squid、Memcached都采用的是epoll|络I/O模型?br/>
  处理大量的连接的dQApache所采用的select|络I/O模型非常低效。下面用一个比L解析Apache采用的select模型和Nginx采用的epoll模型q行之间的区别:

  假设你在大学MQ住的宿舍楼有很多间戉KQ你的朋友要来找你。select版宿大妈就会带着你的朋友挨个戉KLQ直到找C为止。而epoll版宿大妈会先记下每位同学的戉KP你的朋友来时Q只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来?0000个hQ都要找自己住这栋楼的同学时Qselect版和epoll版宿大妈,谁的效率更高Q不a自明。同理,在高q发服务器中Q轮询I/O是最耗时间的操作之一Qselect和epoll的性能谁的性能更高Q同样十分明了?br/>


  安装步骤Q?br/>  Q系l要求:Linux 2.6+ 内核Q本文中的Linux操作pȝ为CentOS 5.3Q另在RedHat AS4上也安装成功Q?br/>
............

Tags - , , , , , , , , , , , , , ]]> http://www.lukangtou.cn/post/406/ <![CDATA[CentOS 5.2下重新编译PHP增加LDAP支持[原创]]]> 张宴 <net@s135.com> Tue, 31 Mar 2009 09:30:37 +0000 http://www.lukangtou.cn/post/406/ http://blog.www.lukangtou.cn/post/406/]

yum install openldap openldap-devel nss_ldap openldap-clients openldap-servers

cd php-5.2.8/
./configure 省略参数 --with-ldap --with-ldap-sasl
make ZEND_EXTRA_LIBS='-liconv'
make install
]]>
http://www.lukangtou.cn/post/382/ <![CDATA[Nginx虚拟L多server_name的顺序问题[原创]]]> 张宴 <net@s135.com> Fri, 28 Nov 2008 03:27:18 +0000 http://www.lukangtou.cn/post/382/ http://blog.www.lukangtou.cn/post/382/]

  今天在配|Nginx + PHP + MediaWiki中,发现一个问题:MediaWiki所在的Nginx虚拟Ll定了多个域名,但是不管通过什么域名访问MediaWiki首页Q都会被跌{到其中的一个域名上。Nginx配置文g中没有相关的rewrite跌{规则Q那么就应该是MediaWiki的PHPE序做的跌{Q但是,遍历了MediaWiki目录下的所有文件以及查询了MySQL数据库中的每个表Q都没有发现记录有这个域名。后来,通过查看源代码发现MediaWiki是根?_SERVER['SERVER_NAME']做的跌{Q顺藤摸瓜,发现了下列问题:

  在一个Nginx虚拟L中,可以l定多个server_nameQ例如:
  点击在新H口中浏览此囄

  而server_name的先后顺序的不同Q对PHPE序中?_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取服务器域名是有媄响的Q?br/>............

Tags - , ]]>
http://www.lukangtou.cn/post/379/ <![CDATA[Nginx+PHP+MySQL双机互备、全自动切换Ҏ[原创]]]> 张宴 <net@s135.com> Wed, 19 Nov 2008 15:20:00 +0000 http://www.lukangtou.cn/post/379/ http://blog.www.lukangtou.cn/post/379/]

  在生产应用中Q某台“Nginx+PHP+MySQL”接口数据服务器Q扮演的角色十分重要Q如果服务器g或Nginx、MySQL发生故障Q而短旉内无法恢复,后果非怸重。ؓ了避免单Ҏ障,我设计了此套ҎQ编写了failover.sh脚本Q实C双机互备、全自动切换Q故障{UL间只需几十U?br/>
  一、双Z备、全自动切换ҎQ?/strong>
  1、拓扑图Q?/strong>
  点击在新H口中浏览此囄

  2、解释:
  (1)、假讑֤|域名blog.www.lukangtou.cn解析到外|虚拟IP 72.249.146.214上,内网hosts讄db10对应内网虚拟IP 192.168.146.214

  (2)、默认情况下Q由Ll定内、外|虚拟IPQ备Z为备份,当主机的MySQL、Nginx或服务器出现故障无法讉KӞ备机会自动接内、外|虚拟IP。两台服务器都启动负责监控、自动切换虚拟IP的守护进E?usr/bin/nohup /bin/sh /usr/local/webserver/failover/failover.sh 2>&1 > /dev/null &

  (3)、主机和备机上的MySQL服务器互Z从,互相同步。在L处于zd状态(即由Ll定虚拟IPQ时Q读写主机的MySQLQ写C机的数据会同步到备机Q在备机处于zd状态时Q读写备机的MySQLQ写到备机的数据会同步到LQ如果主Z的MySQLL暂时无法同步Q主Z的MySQL恢复后,数据会自动从备机上同步过来,反之亦然Q?br/>
  (4)、主机处于活动状态时Q每20U会?data0/htdocs/Q网c程序、图片存攄录)?usr/local/webserver/php/etc/Qphp.ini{配|文件目录)?usr/local/webserver/nginx/conf/QNginx配置文g目录Q三个目录下的文仉过rsync推送到备机服务器上的对应目录(增量推送,两台服务器上一L文g不会重复推送)Q反之如果备机处于活动状态时Q每20U会试把文件推送到L。rsync的配|文件见两台服务器的/etc/rsyncd.confQrsync守护q程的启动命令ؓrsync --daemon

  3、自动切换流E?/strong>
  (1)、主机默认绑定内、外|虚拟IPQ当L的MySQL、Nginx无法讉K或服务器宕机Q主Z的failover.sh守护q程会自动摘除自q定的内、外|虚拟IPQ如果主Z的failover.shLQ无法摘除自q定的虚拟IP也没关系Q,备机上的failover.sh守护q程会自动接备机原来绑定的内、外|虚拟IPQƈ发送ARPing包给内、外|网x新MACQ强行接?br/>
............

Tags - , , , , ]]>
http://www.lukangtou.cn/post/375/ <![CDATA[Nginx 0.7.x + PHP 5.2.6QFastCGIQ? MySQL 5.1 ?28M内存VPS服务器上的配|优化[原创]]]> 张宴 <net@s135.com> Tue, 28 Oct 2008 08:55:12 +0000 http://www.lukangtou.cn/post/375/ http://blog.www.lukangtou.cn/post/375/]

  VPSQ全UVirtual Private ServerQ是利用最新虚拟化技术在一台物理服务器上创建多个相互隔ȝ虚拟U有L。它们以最大化的效率共享硬件、Y件许可证以及理资源。对其用户和应用E序来讲Q每一个VPSq_的运行和理都与一台独立主机完全相同,因ؓ每一个VPS均可独立q行重启q拥有自qroot讉K权限、用戗IP地址、内存、过E、文件、应用程序、系l函数库以及配置文g?br/>
  VPS服务器最重要的指标就是内存大,多个VPS服务器可以共享一颗CPUQ但不能׃n同一块内存。内存越大,h贵?br/>
  下面Q以我的博客所在的VPSZQ介l在128M内存下对 Nginx 0.7.x + PHP 5.2.6QFastCGIQ? MySQL 5.1 的优化?br/>
  至于 Nginx + PHP + MySQL 的安装配|,可参见:?a href="post/366.htm" target="_blank">Nginx 0.7.x + PHP 5.2.6QFastCGIQ搭qApache十倍的Web服务器(W?版) ?br/>


  优化后的效果Q?/strong>

  提供HTTP服务?个Nginxq程占用11M物理内存Q?个php-cgiq程每个占用8M左右物理内存Q?个MySQL服务器占?M物理内存Q加上两个占用内存不大的Nginx和php-cgi父进E,Nginx + PHP + MySQL pdd只占?7.7%的物理内存,?2M物理内存Q?28M * 47.7% ?62MQ?br/>
  点击在新H口中浏览此囄

  另外QVPS服务器系l自w和其它E序也会使用一些内存,?28M内存的VPS已经够用。M而言Q经q优化后Q?28M内存的VPS?Nginx + PHP + MySQL 效果不错。当Ӟ如果有Money购买更大内存的VPSQ就更好了?br/>


  优化如下:

............

Tags - , , , , ]]>
߾ƷƵ