<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>温室小花.技术.博客 --纯粹的unix技术博客 &#187; 负载均衡</title>
	<atom:link href="http://www.evanjiang.net.cn/archives/category/load_balancing/feed" rel="self" type="application/rss+xml" />
	<link>http://www.evanjiang.net.cn</link>
	<description>红颜弹指老，刹那芳华，与其天涯思君，恋恋不舍，莫若相忘于江湖！</description>
	<lastBuildDate>Sun, 05 Sep 2010 14:51:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>非常好的lighttpd 安装配置说明文档</title>
		<link>http://www.evanjiang.net.cn/archives/1254.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1254.html#comments</comments>
		<pubDate>Sat, 01 Aug 2009 06:38:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1254</guid>
		<description><![CDATA[<p>


 <p>一，为什么要使用lighttpd?
    apache不可以吗？
    在支持纯静态的对象时，比如图片，文件等 ，
    lighttpd速度更快，更理想
    至于它和apache的比较，很多文档，大家可以google一下</p>
<p>二，从何处下载lighttpd? </p>
<p>http://www.lighttpd.net/download/</p>
<p>    这个是它的官方站</p>
<p>三，如何安装？
    1,编译安装
      ./configure &#8211;prefix=/usr/local/lighttpd
      make
      make install</p>
<p>configure完毕以后，会给出一个激活的模块和没有激活模块的清单，可以检查一下，是否自己需要的模块都已经激活，在enable的模块中一定要有“mod_rewrite”这一项，否则重新检查pcre是否安装。</p>
<p>    2,编译后配置
    [...]]]></description>
			<content:encoded><![CDATA[<p style="float: left;margin: 4px;"><script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 160x600, 创建于 10-2-7 */
google_ad_slot = "8970910006";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p> <p>一，为什么要使用lighttpd?<br />
    apache不可以吗？<br />
    在支持纯静态的对象时，比如图片，文件等 ，<br />
    lighttpd速度更快，更理想<br />
    至于它和apache的比较，很多文档，大家可以google一下</p>
<p>二，从何处下载lighttpd? </p>
<p>http://www.lighttpd.net/download/</p>
<p>    这个是它的官方站</p>
<p>三，如何安装？<br />
    1,编译安装<br />
      ./configure &#8211;prefix=/usr/local/lighttpd<br />
      make<br />
      make install</p>
<p>configure完毕以后，会给出一个激活的模块和没有激活模块的清单，可以检查一下，是否自己需要的模块都已经激活，在enable的模块中一定要有“mod_rewrite”这一项，否则重新检查pcre是否安装。</p>
<p>    2,编译后配置<br />
      cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd<br />
      mkdir /etc/lighttpd<br />
      cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf</p>
<p>      如果你的Linux是RedHat/CentOS，那么：<br />
      cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd<br />
      如果你的Linux是SuSE，那么：<br />
      cp doc/rc.lighttpd /etc/init.d/lighttpd<br />
      其他Linux发行版本可以自行参考该文件内容进行修改。<br />
      然后修改/etc/init.d/lighttpd，把<br />
      LIGHTTPD_BIN=/usr/sbin/lighttpd<br />
      改为<br />
      LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd<br />
<span id="more-1254"></span><br />
      此脚本用来控制lighttpd的启动关闭和重起：<br />
      /etc/init.d/lighttpd start<br />
      /etc/init.d/lighttpd stop<br />
      /etc/init.d/lighttpd restart<br />
    3,配置<br />
      修改/etc/lighttpd/lighttpd.conf<br />
      1）server.modules<br />
      取消需要用到模块的注释，mod_rewrite，mod_access，mod_fastcgi，mod_simple_vhost，mod_cgi，      mod_compress，mod_accesslog是一般需要用到的。<br />
      我们放开                               &#8220;mod_rewrite&#8221;<br />
                                             &#8220;mod_compress&#8221;,</p>
<p>      2）server.document-root, server.error-log，accesslog.filename需要指定相应的目录<br />
         server.document-root        = &#8220;/www/phc/html/&#8221;<br />
         mkdir /usr/local/lighttpd/logs<br />
         chmod 777 /usr/local/lighttpd/logs/<br />
          touch /usr/local/lighttpd/logs/error.log<br />
          chmod 777 /usr/local/lighttpd/logs/error.log</p>
<p>         server.errorlog             = &#8220;/usr/local/lighttpd/logs/error.log&#8221;<br />
accesslog.filename             = &#8220;|/usr/sbin/cronolog /usr/local/lighttpd/logs/%Y/%m/%d/accesslog.log&#8221;</p>
<p>      3）用什么权限来运行lighttpd<br />
         server.username            = &#8220;nobody&#8221;<br />
         server.groupname           = &#8220;nobody&#8221;<br />
         从安全角度来说，不建议用root权限运行web server，可以自行指定普通用户权限。</p>
<p>       4）静态文件压缩<br />
          mkdir /usr/local/lighttpd/compress<br />
          chmod 777 /usr/local/lighttpd/compress/<br />
compress.cache-dir         = &#8220;/usr/local/lighttpd/compress/&#8221;<br />
compress.filetype          = (&#8220;text/plain&#8221;, &#8220;text/html&#8221;,&#8221;text/javascript&#8221;,&#8221;text/css&#8221;)</p>
<p>          可以指定某些静态资源类型使用压缩方式传输，节省带宽，<br />
          对于大量AJAX应用来说，可以极大提高页面加载速度。</p>
<p>        5）server.port                = 81</p>
<p>        6）#$HTTP["url"] =~ &#8220;.pdf$&#8221; {<br />
    131 # server.range-requests = &#8220;disable&#8221;<br />
    132 #}</p>
<p>    4，优化<br />
     1 最大连接数</p>
<p>            默认是1024<br />
            修改 server.max-fds,大流量网站推荐2048.</p>
<p>            因为lighttpd基于线程,而apache(MPM-prefork)基于子进程,<br />
            所以apache需要设置startservers,maxclients等,这里不需要<br />
     2 stat() 缓存</p>
<p>               stat() 这样的系统调用,开销也是相当明显的.<br />
              缓存能够节约时间和环境切换次数(context switches)</p>
<p>              一句话,lighttpd.conf加上<br />
              server.stat-cache-engine = “fam”</p>
<p>              lighttpd还另外提供simple(缓存1秒内的stat()),disabled选项.<br />
              相信没人会选disabled吧.<br />
      3 常连接(HTTP Keep-Alive)</p>
<p>             一般来说,一个系统能够打开的文件个数是有限制的(文件描述符限制)<br />
            常连接占用文件描述符,对非并发的访问没有什么意义.</p>
<p>            (文件描述符的数量和许多原因有关,比如日志文件数量,并发数目等)</p>
<p>           这是lighttpd在keep-alive方面的默认值.<br />
server.max-keep-alive-requests = 128<br />
server.max-keep-alive-idle = 30</p>
<p>换言之,lighttpd最多可以同时承受30秒长的常连接,每个连接最多请求128个文件.<br />
但这个默认值确实不适合非并发这种多数情况.</p>
<p>lighttpd.conf 中减小<br />
server.max-keep-alive-requests<br />
server.max-keep-alive-idle<br />
两个值,可以减缓这种现象.</p>
<p>甚至可以关闭lighttpd keep-alive.<br />
server.max-keep-alive-requests = 0<br />
4 事件处理</p>
<p>对于linux kernel 2.6来说,没有别的可说<br />
lighttpd.conf中加上这一句足矣<br />
server.event-handler = “linux-sysepoll”</p>
<p>另外,<br />
linux 2.4 使用 linux-rtsig<br />
freebsd 使用 freebsd-kqueue<br />
unix 使用 poll<br />
5 网络处理</p>
<p>lighttpd 大量使用了 sendfile() 这样一个高效的系统调用.<br />
减少了从应用程序到网卡间的距离.<br />
(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)</p>
<p>根据平台,可以设置不同的参数.<br />
server.network-backend = “linux-sendfile”<br />
(linux)<br />
freebsd: freebsd-sendfile<br />
unix: writev</p>
<p>如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现,仅限 lighttpd 1.5<br />
(linux-aio-sendfile, posix-aio, gthread-aio)</p>
<p>此外,网络方面,核心的参数也需要适当进行修改,<br />
这里就不需要详细说明了.</p>
<p>    5,启动<br />
    6,配置日志<br />
    logrotate &#038; cronolog<br />
logrotate很粗暴,直接把进程砍了然后移动日志<br />
cronolog就是比较不错的方式.<br />
lighttpd用法:<br />
accesslog.filename = &#8221; |/usr/sbin/cronolog /var/log/lighttpd/%Y/%m/%d/access_XXXX.log&#8221;<br />
<!--more--></p>
<p>    7,安装pcre<br />
      从何处下载? </p>
<p>http://www.pcre.org/</p>
<p>       wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.bz2<br />
     安装过程：<br />
       　　./configure<br />
　　make clean<br />
　　make<br />
　　make install</p>
<p>8,支持fam<br />
   gamin默认已安装了此包<br />
   yum install gamin-devel</p>
<p>   另外配置时需添加：<br />
   ./configure &#8211;prefix=/usr/local/lighttpd &#8211;with-fam</p>
<p>9,测试lighttpd的启动：<br />
/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/etc/lighttpd.conf</p>
<p>10,防止盗链<br />
#$HTTP["referer"] !~ &#8220;^($|http://.*.(chinafotopress.com|chinafotopress.cn))&#8221; {<br />
#    $HTTP["url"] =~ &#8220;.(jpg|jpeg|png|gif|rar|zip|mp3)$&#8221; {<br />
#       #url.redirect = (&#8220;.*&#8221;    => &#8220;http://www.baidu.com/&#8221;)<br />
#        url.access-deny = (&#8220;.jpg&#8221;)<br />
#    }<br />
#}</p>
<p>#$HTTP["referer"] == &#8220;&#8221; {<br />
#    $HTTP["url"] =~ &#8220;.(jpg|jpeg|png|gif|rar|zip|mp3)$&#8221; {<br />
#       #url.redirect = (&#8220;.*&#8221;    => &#8220;http://www.baidu.com/&#8221;)<br />
#        url.access-deny = (&#8220;.jpg&#8221;)<br />
#    }<br />
#}</p>
<p>日志处理</p>
<p>Sometimes, Google Analytics just isn&#8217;t enough when it comes to keeping and interpreting server stats. After finding a suitable log file analyzer, AWStats, the next step involved separating out the log files on a per domain basis. When the server was first set up, everything was shuttled to one set of access and error log files. While AWStats could technically analyze this log, the suggested set up involves having one set per domain. This article details the process of separating out the log files and making sure that these new files get rotated correctly.<br />
Create Log Directories</p>
<p>While it would be possible to keep all of the files in one directory and to just name them relative to the domain, for this tutorial we will assume that we will create subdirectories based on the domain name. The first step would be to create a directory for each domain.</p>
<p>sudo -u www-data mkdir /var/log/lighttpd/www.example1.com<br />
sudo -u www-data mkdir /var/log/lighttpd/www.example2.com<br />
Update lighttpd.conf</p>
<p>After creating the directories, it&#8217;s time to update the lighttpd conf file in /etc/lighttpd. We&#8217;ll want to set the log files by host name. We already had directives setting the server.document-root for these domains so we only added the bolded lines.</p>
<p>$HTTP["host"] =~ &#8220;(^|\.)example1.com&#8221;$&#8221; {<br />
server.document-root = &#8220;/var/www/www.example1.com&#8221;,<br />
server.errorlog = &#8220;/var/log/lighttpd/www.example1.com/error.log&#8221;,<br />
accesslog.filename = &#8220;/var/log/lighttpd/www.example1.com/access.log&#8221;,<br />
}</p>
<p>$HTTP["host"] =~ &#8220;(^|\.)example2.com$&#8221; {<br />
server.document-root = &#8220;/var/www/www.example2.com&#8221;,<br />
server.errorlog = &#8220;/var/log/lighttpd/www.example2.com/error.log&#8221;,<br />
accesslog.filename = &#8220;/var/log/lighttpd/www.example2.com/access.log&#8221;,<br />
}</p>
<p>After adding these directives, you will need to restart the server.</p>
<p>sudo /etc/init.d/lighttpd restart<br />
Update Logrotate</p>
<p>Finally, we will want logrotate to rotate these new directories. Since our main goal is to integrate the logs with AWStats, it made sense to add a separate entry for each log directory. However, if you don&#8217;t need call different scripts for the different domains, feel free to create one directive. We just copied the existing logrotate configuration and editted it for each of the domains. Below are examples of what this might look like.</p>
<p>/var/log/lighttpd/*.log {<br />
daily<br />
missingok<br />
copytruncate<br />
rotate 60<br />
compress<br />
notifempty<br />
sharedscripts<br />
postrotate<br />
if [ -f /var/run/lighttpd.pid ]; then \<br />
kill -HUP $(<br />
fi;<br />
endscript<br />
}<br />
/var/log/lighttpd/www.example1.com/*.log {<br />
daily<br />
missingok<br />
copytruncate<br />
rotate 60<br />
compress<br />
notifempty<br />
sharedscripts<br />
postrotate<br />
if [ -f /var/run/lighttpd.pid ]; then \<br />
kill -HUP $(<br />
fi;<br />
endscript<br />
}<br />
/var/log/lighttpd/www.example2.com/*.log {<br />
daily<br />
missingok<br />
copytruncate<br />
rotate 60<br />
compress<br />
notifempty<br />
sharedscripts<br />
postrotate<br />
if [ -f /var/run/lighttpd.pid ]; then \<br />
kill -HUP $(<br />
fi;<br />
endscript<br />
}</p>
<p>To make just one configuration entry, it would look like this:</p>
<p>&#8220;/var/log/lighttpd/*.log&#8221; &#8220;/var/log/lighttpd/www.example1.com/*.log&#8221; &#8220;/var/log/lighttpd/www.example2.com/*.log&#8221; {<br />
daily<br />
missingok<br />
copytruncate<br />
rotate 60<br />
compress<br />
notifempty<br />
sharedscripts<br />
postrotate<br />
if [ -f /var/run/lighttpd.pid ]; then \<br />
kill -HUP $(<br />
fi;<br />
endscript<br />
}<br />
Sources</p>
<p>    * Lighttpd rotating log files with logrotate tool<br />
    * Howto: Lighttpd web server setting up virtual hosting</p>
<p>Trackback URL for this post: </p>
<p>http://tracy.hurleyit.com/trackback/1140</p>
<p>lighttpd虚拟主机配置<br />
$HTTP["host"] == &#8220;bbs.xxx.com&#8221; {<br />
server.name = &#8220;bbs.xxx.com&#8221;<br />
server.document-root = &#8220;/var/www/bbs&#8221;<br />
server.errorlog = &#8220;/var/www/bbs/error.log&#8221;<br />
accesslog.filename = &#8220;/var/www/bbs/access.log&#8221;<br />
}<br />
else</p>
<p>lighttpd.conf解释</p>
<p>server.use-ipv6 = &#8220;disable&#8221; # 缺省为禁用<br />
server.event-handler = &#8220;linux-sysepoll&#8221; # Linux环境下epoll系统调用可提高吞吐量<br />
#server.max-worker = 10 # 如果你的系统资源没跑满，可考虑调高 lighttpd进程数<br />
server.max-fds = 4096 # 默认的，应该够用了，可根据实际情况调整<br />
server.max-connections = 4096 # 默认等于 server.max-fds<br />
server.network-backend = &#8220;linux-sendfile&#8221;<br />
server.max-keep-alive-requests = 0 # 在一个keep-alive会话终止连接前能接受处理的最大请求数。0为禁止</p>
<p># 设置要加载的module<br />
server.modules = (<br />
&#8220;mod_rewrite&#8221;,<br />
&#8220;mod_redirect&#8221;,<br />
# &#8220;mod_alias&#8221;,<br />
&#8220;mod_access&#8221;,<br />
# &#8220;mod_cml&#8221;,<br />
# &#8220;mod_trigger_b4_dl&#8221;,<br />
&#8220;mod_auth&#8221;,<br />
&#8220;mod_expire&#8221;,<br />
# &#8220;mod_status&#8221;,<br />
# &#8220;mod_setenv&#8221;,<br />
&#8220;mod_proxy_core&#8221;,<br />
&#8220;mod_proxy_backend_http&#8221;,<br />
&#8220;mod_proxy_backend_fastcgi&#8221;,<br />
# &#8220;mod_proxy_backend_scgi&#8221;,<br />
# &#8220;mod_proxy_backend_ajp13&#8243;,<br />
# &#8220;mod_simple_vhost&#8221;,<br />
&#8220;mod_evhost&#8221;,<br />
# &#8220;mod_userdir&#8221;,<br />
# &#8220;mod_cgi&#8221;,<br />
&#8220;mod_compress&#8221;,<br />
# &#8220;mod_ssi&#8221;,<br />
# &#8220;mod_usertrack&#8221;,<br />
# &#8220;mod_secdownload&#8221;,<br />
# &#8220;mod_rrdtool&#8221;,<br />
&#8220;mod_accesslog&#8221; )</p>
<p># 网站根目录<br />
server.document-root = &#8220;/var/www/&#8221;</p>
<p># 错误日志位置<br />
server.errorlog = &#8220;/var/log/lighttpd/error.log&#8221;</p>
<p># 网站Index<br />
index-file.names = ( &#8220;index.php&#8221;, &#8220;index.html&#8221;,<br />
&#8220;index.htm&#8221;, &#8220;default.htm&#8221; )</p>
<p># 访问日志, 以及日志格式 (combined), 使用X-Forwarded-For可越过代理读取真实ip<br />
accesslog.filename = &#8220;/var/log/lighttpd/access.log&#8221;<br />
accesslog.format = &#8220;%{X-Forwarded-For}i %v %u %t \&#8221;%r\&#8221; %s %b \&#8221;%{User-Agent}i\&#8221; \&#8221;%{Referer}i\&#8221;"</p>
<p># 设置禁止访问的文件扩展名<br />
url.access-deny = ( &#8220;~&#8221;, &#8220;.inc&#8221;, &#8220;.tpl&#8221; )</p>
<p># 服务监听端口<br />
server.port = 80</p>
<p># 进程id记录位置<br />
server.pid-file = &#8220;/var/run/lighttpd.pid&#8221;</p>
<p># virtual directory listings 如果没有找到index文件就列出目录。建议disable。<br />
dir-listing.activate = &#8220;disable&#8221;</p>
<p># 服务运行使用的用户及用户组<br />
server.username = &#8220;www&#8221;<br />
server.groupname = &#8220;www&#8221;</p>
<p># gzip压缩存放的目录以及需要压缩的文件类型<br />
compress.cache-dir = &#8220;/tmp/lighttpd/cache/compress/&#8221;<br />
compress.filetype = (&#8220;text/plain&#8221;, &#8220;text/html&#8221;)</p>
<p># fastcgi module<br />
# for PHP don&#8217;t forget to set cgi.fix_pathinfo = 1 in the php.ini<br />
$HTTP["url"] =~ &#8220;\.php$&#8221; {<br />
proxy-core.balancer = &#8220;round-robin&#8221;<br />
proxy-core.allow-x-sendfile = &#8220;enable&#8221;<br />
# proxy-core.check-local = &#8220;enable&#8221;<br />
proxy-core.protocol = &#8220;fastcgi&#8221;<br />
proxy-core.backends = ( &#8220;unix:/tmp/php-fastcgi1.sock&#8221;,&#8221;unix:/tmp/php-fastcgi2.sock&#8221; )<br />
proxy-core.max-pool-size = 16<br />
}</p>
<p># 权限控制<br />
auth.backend = &#8220;htpasswd&#8221;<br />
auth.backend.htpasswd.userfile = &#8220;/var/www/htpasswd.userfile&#8221;</p>
<p># 基于 evhost 的虚拟主机 针对域名<br />
$HTTP["host"] == &#8220;a.lostk.com&#8221; {<br />
server.document-root = &#8220;/var/www/lostk/&#8221;<br />
server.errorlog = &#8220;/var/log/lighttpd/lostk-error.log&#8221;<br />
accesslog.filename = &#8220;/var/log/lighttpd/lostk-access.log&#8221;</p>
<p># 设定文件过期时间<br />
expire.url = (<br />
&#8220;/css/&#8221; => &#8220;access 2 hours&#8221;,<br />
&#8220;/js/&#8221; => &#8220;access 2 hours&#8221;,<br />
)</p>
<p># url 跳转<br />
url.redirect = (<br />
&#8220;^/$&#8221; => &#8220;/xxx/index.html&#8221;,<br />
)</p>
<p># url 重写 (cakephp可用)<br />
url.rewrite = (<br />
&#8220;^/(css|js)/(.*)$&#8221; => &#8220;/$1/$2&#8243;,<br />
&#8220;^/([^.]+)$&#8221; => &#8220;/index.php?url=$1&#8243;,<br />
)</p>
<p># 权限控制<br />
auth.require = ( &#8220;&#8221; =><br />
(<br />
&#8220;method&#8221; => &#8220;basic&#8221;,<br />
&#8220;realm&#8221; => &#8220;admin only&#8221;,<br />
&#8220;require&#8221; => &#8220;user=admin1|user=admin2&#8243; # 允许的用户, 用户列表文件 在上面配置的auth.backend.htpasswd.userfile 里<br />
),<br />
)<br />
}</p>
<p># 针对端口的虚拟主机<br />
$SERVER["socket"] == &#8220;192.168.0.1:8000&#8243; {<br />
server.document-root = &#8220;/var/www/xxx/&#8221;<br />
server.errorlog = &#8220;/var/log/lighttpd/test-error.log&#8221;<br />
accesslog.filename = &#8220;/var/log/lighttpd/test-access.log&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1254.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx配置文件中文注释详解</title>
		<link>http://www.evanjiang.net.cn/archives/1246.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1246.html#comments</comments>
		<pubDate>Sat, 01 Aug 2009 06:24:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1246</guid>
		<description><![CDATA[<p style="float: right;margin: 4px;">


</p> <p>Nginx配置文件详解
nginx配置说明&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
#运行用户
user  nobody nobody;
#启动进程
worker_processes  2;
#全局错误日志及PID文件
error_log  logs/error.log notice;
pid        logs/nginx.pid;
#工作模式及连接数上限
events {
use epoll;
worker_connections      1024;
}
#设定http服务器，利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型
include      conf/mime.types;
default_type  application/octet-stream;
#设定日志格式
log_format main        &#8216;$remote_addr &#8211; $remote_user [$time_local] &#8216;
&#8216;&#8221;$request&#8221; $status $bytes_sent &#8216;
&#8216;&#8221;$http_referer&#8221; &#8220;$http_user_agent&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Nginx配置文件详解<br />
nginx配置说明&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
#运行用户<br />
user  nobody nobody;<br />
#启动进程<br />
worker_processes  2;<br />
#全局错误日志及PID文件<br />
error_log  logs/error.log notice;<br />
pid        logs/nginx.pid;<br />
#工作模式及连接数上限<br />
events {<br />
use epoll;<br />
worker_connections      1024;<br />
}<br />
#设定http服务器，利用它的反向代理功能提供负载均衡支持<br />
http {<br />
#设定mime类型<br />
include      conf/mime.types;<br />
default_type  application/octet-stream;<br />
#设定日志格式<br />
log_format main        &#8216;$remote_addr &#8211; $remote_user [$time_local] &#8216;<br />
&#8216;&#8221;$request&#8221; $status $bytes_sent &#8216;<br />
&#8216;&#8221;$http_referer&#8221; &#8220;$http_user_agent&#8221; &#8216;<br />
&#8216;&#8221;$gzip_ratio&#8221;&#8216;;<br />
log_format download &#8216;$remote_addr &#8211; $remote_user [$time_local] &#8216;<br />
&#8216;&#8221;$request&#8221; $status $bytes_sent &#8216;<br />
&#8216;&#8221;$http_referer&#8221; &#8220;$http_user_agent&#8221; &#8216;<br />
&#8216;&#8221;$http_range&#8221; &#8220;$sent_http_content_range&#8221;&#8216;;<br />
#设定请求缓冲<br />
client_header_buffer_size    1k;<br />
large_client_header_buffers  4 4k;<br />
<span id="more-1246"></span><br />
#开启gzip模块<br />
gzip on;<br />
gzip_min_length  1100;<br />
gzip_buffers    4 8k;<br />
gzip_types      text/plain;<br />
output_buffers  1 32k;<br />
postpone_output  1460;<br />
#设定access log<br />
access_log  logs/access.log  main;<br />
client_header_timeout  3m;<br />
client_body_timeout    3m;<br />
send_timeout          3m;<br />
sendfile                on;<br />
tcp_nopush              on;<br />
tcp_nodelay            on;<br />
keepalive_timeout  65;<br />
#设定负载均衡的服务器列表<br />
upstream mysvr {<br />
#weigth参数表示权值，权值越高被分配到的几率越大<br />
#本机上的Squid开启3128端口<br />
server 192.168.8.1:3128 weight=5;<br />
server 192.168.8.2:80  weight=1;<br />
server 192.168.8.3:80  weight=6;<br />
}<br />
#设定虚拟主机<br />
server {<br />
listen          80;<br />
server_name    192.168.8.1 www.hahaer.com;<br />
charset gb2312;<br />
#设定本虚拟主机的访问日志<br />
access_log  logs/www.hahaer.com.access.log  main;<br />
#如果访问 /img/*, /js/*, /css/* 资源，则直接取本地文件，不通过squid<br />
#如果这些文件较多，不推荐这种方式，因为通过squid的缓存效果更好<br />
location ~ ^/(img|js|css)/  {<br />
root    /data3/Html;<br />
expires 24h;<br />
}<br />
#对 &#8220;/&#8221; 启用负载均衡<br />
location / {<br />
proxy_pass      http://mysvr;<br />
proxy_redirect          off;<br />
proxy_set_header        Host $host;<br />
proxy_set_header        X-Real-IP $remote_addr;<br />
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;<br />
client_max_body_size    10m;<br />
client_body_buffer_size 128k;<br />
proxy_connect_timeout  90;<br />
proxy_send_timeout      90;<br />
proxy_read_timeout      90;<br />
proxy_buffer_size      4k;<br />
proxy_buffers          4 32k;<br />
proxy_busy_buffers_size 64k;<br />
proxy_temp_file_write_size 64k;<br />
}<br />
#设定查看Nginx状态的地址<br />
location /NginxStatus {<br />
stub_status            on;<br />
access_log              on;<br />
auth_basic              &#8220;NginxStatus&#8221;;<br />
auth_basic_user_file  conf/htpasswd;<br />
}<br />
}<br />
}<br />
备注：conf/htpasswd 文件的内容用 apache 提供的 htpasswd 工具来产生即可，内容大致如下：<br />
  3.) 查看 Nginx 运行状态<br />
输入地址 http://192.168.8.1/NginxStatus/，输入验证帐号密码，即可看到类似如下内容：<br />
Active connections: 328<br />
server accepts handled requests<br />
9309    8982        28890<br />
Reading: 1 Writing: 3 Waiting: 324</p>
<p>第一行表示目前活跃的连接数<br />
第三行的第三个数字表示Nginx运行到当前时间接受到的总请求数，如果快达到了上限，就需要加大上限值。<br />
第四行是Nginx的队列状态</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1246.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站恢复时，Lighttpd+php环境搭建文档笔记</title>
		<link>http://www.evanjiang.net.cn/archives/866.html</link>
		<comments>http://www.evanjiang.net.cn/archives/866.html#comments</comments>
		<pubDate>Fri, 03 Apr 2009 03:20:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[lighttpd php 环境 搭建 文档笔记]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=866</guid>
		<description><![CDATA[<p>早前。网站要迁移。要从apache+php环境迁移到Lighttpd +php环境，如下为lighttpd+php环境搭建文档笔记。有点乱。有空再详细整理。</p>
<p>fetch ftp://ftp.freebsd.org/pub/FreeBS &#8230; Latest/lighttpd.tgz
tar -zxvf lighttpd.tgz
cd lighttpd
./configure &#8211;prefix=/home/tiger/evan/lighttpd &#8211;with-pcre &#8211;with-gdbm &#8211;with-memcache make
make install
安装PHP
tar -zxvf php-5.0.4.tgz
cd php-5.0.4
./configure &#8211;prefix=/home/tiger/evan/php5-fastcgi &#8211;enable-fastcgi &#8211;without-pear &#8211;with-mysql=/usr/local/mysql  &#8211;enable-discard-path &#8211;enable-force-cgi-redirect -with-iconv
./configure &#8211;prefix=/home/tiger/evan/php5-fastcgi &#8211;with-mysql=/usr/local/mysql &#8211;enable-gd-native-ttf &#8211;with-gd &#8211;enable-ftp &#8211;with-iconv &#8211;with-gettext &#8211;enable-fastcgi &#8211;enable-zend-multibyte &#8211;without-pear &#8211;enable-force-cgi-redirect &#8211;enable-discard-path
Make
Make test
Make clean
Make install</p>
<p>配置Lighttpd
vi lighttpd.confserver.port=5678
server.modules=(&#8220;mod_access&#8221;,&#8221;mod_fastcgi&#8221;,&#8221;mod_accesslog&#8221;)
server.document-root=&#8221;/home/tiger/evan/lighttpd/htdocs&#8221;
server.pid-file=&#8221;/home/tiger/evan//lighttpd/lighttpd.pid&#8221;
server.errorlog=&#8221;/home/tiger/evan//lighttpd/lighttpd.error.log&#8221;
server.indexfiles=(&#8220;index.php&#8221;,&#8221;index.html&#8221;)
fastcgi.server=(&#8220;.php&#8221;=>(&#8220;localhost&#8221;=>(&#8220;socket&#8221; =>&#8221;/tmp/php-fastcgi.socket&#8221;,&#8221;bin-path&#8221;
=>&#8221;/home/tiger/evan/php5-fastcgi/bin/php&#8221;)))</p>
<p>启动Lighttpd
/home/tiger/evan/lighttpd/sbin/lighttpd -f  /home/tiger/evan/lighttpd/conf/lighttpd.conf
</p>
<p>安装环境: Linux Fedora Core 3 上安装 php-5.2.0</p>
<p>在安装 PHP 到系统中时要是发生「undefined reference to [...]]]></description>
			<content:encoded><![CDATA[<p>早前。网站要迁移。要从apache+php环境迁移到Lighttpd +php环境，如下为lighttpd+php环境搭建文档笔记。有点乱。有空再详细整理。</p>
<p>fetch ftp://ftp.freebsd.org/pub/FreeBS &#8230; Latest/lighttpd.tgz<br />
tar -zxvf lighttpd.tgz<br />
cd lighttpd<br />
./configure &#8211;prefix=/home/tiger/evan/lighttpd &#8211;with-pcre &#8211;with-gdbm &#8211;with-memcache make<br />
make install<br />
安装PHP<br />
tar -zxvf php-5.0.4.tgz<br />
cd php-5.0.4<br />
./configure &#8211;prefix=/home/tiger/evan/php5-fastcgi &#8211;enable-fastcgi &#8211;without-pear &#8211;with-mysql=/usr/local/mysql  &#8211;enable-discard-path &#8211;enable-force-cgi-redirect -with-iconv<br />
./configure &#8211;prefix=/home/tiger/evan/php5-fastcgi &#8211;with-mysql=/usr/local/mysql &#8211;enable-gd-native-ttf &#8211;with-gd &#8211;enable-ftp &#8211;with-iconv &#8211;with-gettext &#8211;enable-fastcgi &#8211;enable-zend-multibyte &#8211;without-pear &#8211;enable-force-cgi-redirect &#8211;enable-discard-path<br />
Make<br />
Make test<br />
Make clean<br />
Make install</p>
<p>配置Lighttpd<br />
vi lighttpd.confserver.port=5678<br />
server.modules=(&#8220;mod_access&#8221;,&#8221;mod_fastcgi&#8221;,&#8221;mod_accesslog&#8221;)<br />
server.document-root=&#8221;/home/tiger/evan/lighttpd/htdocs&#8221;<br />
server.pid-file=&#8221;/home/tiger/evan//lighttpd/lighttpd.pid&#8221;<br />
server.errorlog=&#8221;/home/tiger/evan//lighttpd/lighttpd.error.log&#8221;<br />
server.indexfiles=(&#8220;index.php&#8221;,&#8221;index.html&#8221;)<br />
fastcgi.server=(&#8220;.php&#8221;=>(&#8220;localhost&#8221;=>(&#8220;socket&#8221; =>&#8221;/tmp/php-fastcgi.socket&#8221;,&#8221;bin-path&#8221;<br />
=>&#8221;/home/tiger/evan/php5-fastcgi/bin/php&#8221;)))</p>
<p>启动Lighttpd<br />
/home/tiger/evan/lighttpd/sbin/lighttpd -f  /home/tiger/evan/lighttpd/conf/lighttpd.conf<br />
<span id="more-866"></span></p>
<p>安装环境: Linux Fedora Core 3 上安装 php-5.2.0</p>
<p>在安装 PHP 到系统中时要是发生「undefined reference to `libiconv_open&#8217;」之类的错误讯息，那表示在「./configure 」没抓好一些环境变量值。错误发生点在建立「-o sapi/cli/php」时出错，没给到要 link 的 iconv 函式库参数。</p>
<p>快速的解法是：<br />
编辑 Makefile 大约 70 行左右的地方:</p>
<p>EXTRA_LIBS = &#8230;.. -lcrypt</p>
<p>在最后加上 -liconv，例如:</p>
<p>EXTRA_LIBS = &#8230;.. -lcrypt -liconv</p>
<p>然后重新再次 make 即可。<br />
________________________________________</p>
<p>如果要安装 iconv 函式库的话：<br />
其首页是: http://www.gnu.org/software/libiconv/<br />
下载点是: http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz</p>
<p>安装步骤:</p>
<p># ./configure &#8211;prefix=/usr/local<br />
# make<br />
# make install</p>
<p>________________________________________</p>
<p>make 时的错误讯息范例：</p>
<p>[jjdai@zhupiter php-5.2.0]$ make<br />
/bin/sh /home/jjdai/work/zhupiter/php-5.2.0/libtool &#8211;silent &#8211;preserve-dup-deps &#8211;mode=link gcc -export-dynamic -I/usr/local/include -g -O2 -L/usr/kerberos/lib -L/usr/local/lib -L/usr/lib/mysql -R /usr/kerberos/lib -R /usr/local/lib -R /usr/lib/mysql ext/libxml/libxml.lo ext/openssl/openssl.lo ext/openssl/xp_ssl.lo ext/pcre/pcrelib/pcre_chartables.lo ext/pcre/pcrelib/pcre_ucp_searchfuncs.lo ext/pcre/pcrelib/pcre_compile.lo ext/pcre/pcrelib/pcre_config.lo ext/pcre/pcrelib/pcre_exec.lo ext/pcre/pcrelib/pcre_fullinfo.lo ext/pcre/pcrelib/pcre_get.lo ext/pcre/pcrelib/pcre_globals.lo ext/pcre/pcrelib/pcre_info.lo ext/pcre/pcrelib/pcre_maketables.lo ext/pcre/pcrelib/pcre_ord2utf8.lo ext/pcre/pcrelib/pcre_refcount.lo ext/pcre/pcrelib/pcre_study.lo ext/pcre/pcrelib/pcre_tables.lo ext/pcre/pcrelib/pcre_try_flipped.lo ext/pcre/pcrelib/pcre_valid_utf8.lo ext/pcre/pcrelib/pcre_version.lo ext/pcre/pcrelib/pcre_xclass.lo ext/pcre/php_pcre.lo ext/zlib/zlib.lo ext/zlib/zlib_fopen_wrapper.lo ext/zlib/zlib_filter.lo ext/bz2/bz2.lo ext/bz2/bz2_filter.lo ext/ctype/ctype.lo ext/curl/interface.lo ext/curl/multi.lo ext/curl/streams.lo ext/date/php_date.lo ext/date/lib/astro.lo ext/date/lib/dow.lo ext/date/lib/parse_date.lo ext/date/lib/parse_tz.lo ext/date/lib/timelib.lo ext/date/lib/tm2unixtime.lo ext/date/lib/unixtime2tm.lo ext/dom/php_dom.lo ext/dom/attr.lo ext/dom/document.lo ext/dom/domerrorhandler.lo ext/dom/domstringlist.lo ext/dom/domexception.lo ext/dom/namelist.lo ext/dom/processinginstruction.lo ext/dom/cdatasection.lo ext/dom/documentfragment.lo ext/dom/domimplementation.lo ext/dom/element.lo ext/dom/node.lo ext/dom/string_extend.lo ext/dom/characterdata.lo ext/dom/documenttype.lo ext/dom/domimplementationlist.lo ext/dom/entity.lo ext/dom/nodelist.lo ext/dom/text.lo ext/dom/comment.lo ext/dom/domconfiguration.lo ext/dom/domimplementationsource.lo ext/dom/entityreference.lo ext/dom/notation.lo ext/dom/xpath.lo ext/dom/dom_iterators.lo ext/dom/typeinfo.lo ext/dom/domerror.lo ext/dom/domlocator.lo ext/dom/namednodemap.lo ext/dom/userdatahandler.lo ext/filter/filter.lo ext/filter/sanitizing_filters.lo ext/filter/logical_filters.lo ext/filter/callback_filter.lo ext/gd/gd.lo ext/gd/gdttf.lo ext/gd/libgd/gd.lo ext/gd/libgd/gd_gd.lo ext/gd/libgd/gd_gd2.lo ext/gd/libgd/gd_io.lo ext/gd/libgd/gd_io_dp.lo ext/gd/libgd/gd_io_file.lo ext/gd/libgd/gd_ss.lo ext/gd/libgd/gd_io_ss.lo ext/gd/libgd/gd_png.lo ext/gd/libgd/gd_jpeg.lo ext/gd/libgd/gdxpm.lo ext/gd/libgd/gdfontt.lo ext/gd/libgd/gdfonts.lo ext/gd/libgd/gdfontmb.lo ext/gd/libgd/gdfontl.lo ext/gd/libgd/gdfontg.lo ext/gd/libgd/gdtables.lo ext/gd/libgd/gdft.lo ext/gd/libgd/gdcache.lo ext/gd/libgd/gdkanji.lo ext/gd/libgd/wbmp.lo ext/gd/libgd/gd_wbmp.lo ext/gd/libgd/gdhelpers.lo ext/gd/libgd/gd_topal.lo ext/gd/libgd/gd_gif_in.lo ext/gd/libgd/xbm.lo ext/gd/libgd/gd_gif_out.lo ext/hash/hash.lo ext/hash/hash_md.lo ext/hash/hash_sha.lo ext/hash/hash_ripemd.lo ext/hash/hash_haval.lo ext/hash/hash_tiger.lo ext/hash/hash_gost.lo ext/hash/hash_snefru.lo ext/hash/hash_whirlpool.lo ext/hash/hash_adler32.lo ext/hash/hash_crc32.lo ext/iconv/iconv.lo ext/json/json.lo ext/json/utf8_to_utf16.lo ext/json/utf8_decode.lo ext/json/JSON_parser.lo ext/mysql/php_mysql.lo ext/pdo/pdo.lo ext/pdo/pdo_dbh.lo ext/pdo/pdo_stmt.lo ext/pdo/pdo_sql_parser.lo ext/pdo/pdo_sqlstate.lo ext/pdo_sqlite/pdo_sqlite.lo ext/pdo_sqlite/sqlite_driver.lo ext/pdo_sqlite/sqlite_statement.lo ext/pdo_sqlite/sqlite/src/attach.lo ext/pdo_sqlite/sqlite/src/auth.lo ext/pdo_sqlite/sqlite/src/btree.lo ext/pdo_sqlite/sqlite/src/build.lo ext/pdo_sqlite/sqlite/src/callback.lo ext/pdo_sqlite/sqlite/src/date.lo ext/pdo_sqlite/sqlite/src/delete.lo ext/pdo_sqlite/sqlite/src/expr.lo ext/pdo_sqlite/sqlite/src/func.lo ext/pdo_sqlite/sqlite/src/hash.lo ext/pdo_sqlite/sqlite/src/insert.lo ext/pdo_sqlite/sqlite/src/legacy.lo ext/pdo_sqlite/sqlite/src/main.lo ext/pdo_sqlite/sqlite/src/os_unix.lo ext/pdo_sqlite/sqlite/src/os_win.lo ext/pdo_sqlite/sqlite/src/os.lo ext/pdo_sqlite/sqlite/src/pager.lo ext/pdo_sqlite/sqlite/src/pragma.lo ext/pdo_sqlite/sqlite/src/prepare.lo ext/pdo_sqlite/sqlite/src/printf.lo ext/pdo_sqlite/sqlite/src/random.lo ext/pdo_sqlite/sqlite/src/select.lo ext/pdo_sqlite/sqlite/src/table.lo ext/pdo_sqlite/sqlite/src/tokenize.lo ext/pdo_sqlite/sqlite/src/analyze.lo ext/pdo_sqlite/sqlite/src/complete.lo ext/pdo_sqlite/sqlite/src/trigger.lo ext/pdo_sqlite/sqlite/src/update.lo ext/pdo_sqlite/sqlite/src/utf.lo ext/pdo_sqlite/sqlite/src/util.lo ext/pdo_sqlite/sqlite/src/vacuum.lo ext/pdo_sqlite/sqlite/src/vdbeapi.lo ext/pdo_sqlite/sqlite/src/vdbeaux.lo ext/pdo_sqlite/sqlite/src/vdbe.lo ext/pdo_sqlite/sqlite/src/vdbemem.lo ext/pdo_sqlite/sqlite/src/where.lo ext/pdo_sqlite/sqlite/src/parse.lo ext/pdo_sqlite/sqlite/src/opcodes.lo ext/pdo_sqlite/sqlite/src/alter.lo ext/pdo_sqlite/sqlite/src/vdbefifo.lo ext/pdo_sqlite/sqlite/src/vtab.lo ext/pdo_sqlite/sqlite/src/loadext.lo ext/posix/posix.lo ext/reflection/php_reflection.lo ext/session/session.lo ext/session/mod_files.lo ext/session/mod_mm.lo ext/session/mod_user.lo ext/simplexml/simplexml.lo ext/spl/php_spl.lo ext/spl/spl_functions.lo ext/spl/spl_engine.lo ext/spl/spl_iterators.lo ext/spl/spl_array.lo ext/spl/spl_directory.lo ext/spl/spl_sxe.lo ext/spl/spl_exceptions.lo ext/spl/spl_observer.lo ext/sqlite/sqlite.lo ext/sqlite/sess_sqlite.lo ext/sqlite/pdo_sqlite2.lo ext/sqlite/libsqlite/src/opcodes.lo ext/sqlite/libsqlite/src/parse.lo ext/sqlite/libsqlite/src/encode.lo ext/sqlite/libsqlite/src/auth.lo ext/sqlite/libsqlite/src/btree.lo ext/sqlite/libsqlite/src/build.lo ext/sqlite/libsqlite/src/delete.lo ext/sqlite/libsqlite/src/expr.lo ext/sqlite/libsqlite/src/func.lo ext/sqlite/libsqlite/src/hash.lo ext/sqlite/libsqlite/src/insert.lo ext/sqlite/libsqlite/src/main.lo ext/sqlite/libsqlite/src/os.lo ext/sqlite/libsqlite/src/pager.lo ext/sqlite/libsqlite/src/printf.lo ext/sqlite/libsqlite/src/random.lo ext/sqlite/libsqlite/src/select.lo ext/sqlite/libsqlite/src/table.lo ext/sqlite/libsqlite/src/tokenize.lo ext/sqlite/libsqlite/src/update.lo ext/sqlite/libsqlite/src/util.lo ext/sqlite/libsqlite/src/vdbe.lo ext/sqlite/libsqlite/src/attach.lo ext/sqlite/libsqlite/src/btree_rb.lo ext/sqlite/libsqlite/src/pragma.lo ext/sqlite/libsqlite/src/vacuum.lo ext/sqlite/libsqlite/src/copy.lo ext/sqlite/libsqlite/src/vdbeaux.lo ext/sqlite/libsqlite/src/date.lo ext/sqlite/libsqlite/src/where.lo ext/sqlite/libsqlite/src/trigger.lo regex/regcomp.lo regex/regexec.lo regex/regerror.lo regex/regfree.lo ext/standard/array.lo ext/standard/base64.lo ext/standard/basic_functions.lo ext/standard/browscap.lo ext/standard/crc32.lo ext/standard/crypt.lo ext/standard/cyr_convert.lo ext/standard/datetime.lo ext/standard/dir.lo ext/standard/dl.lo ext/standard/dns.lo ext/standard/exec.lo ext/standard/file.lo ext/standard/filestat.lo ext/standard/flock_compat.lo ext/standard/formatted_print.lo ext/standard/fsock.lo ext/standard/head.lo ext/standard/html.lo ext/standard/image.lo ext/standard/info.lo ext/standard/iptc.lo ext/standard/lcg.lo ext/standard/link.lo ext/standard/mail.lo ext/standard/math.lo ext/standard/md5.lo ext/standard/metaphone.lo ext/standard/microtime.lo ext/standard/pack.lo ext/standard/pageinfo.lo ext/standard/quot_print.lo ext/standard/rand.lo ext/standard/reg.lo ext/standard/soundex.lo ext/standard/string.lo ext/standard/scanf.lo ext/standard/syslog.lo ext/standard/type.lo ext/standard/uniqid.lo ext/standard/url.lo ext/standard/url_scanner.lo ext/standard/var.lo ext/standard/versioning.lo ext/standard/assert.lo ext/standard/strnatcmp.lo ext/standard/levenshtein.lo ext/standard/incomplete_class.lo ext/standard/url_scanner_ex.lo ext/standard/ftp_fopen_wrapper.lo ext/standard/http_fopen_wrapper.lo ext/standard/php_fopen_wrapper.lo ext/standard/credits.lo ext/standard/css.lo ext/standard/var_unserializer.lo ext/standard/ftok.lo ext/standard/sha1.lo ext/standard/user_filters.lo ext/standard/uuencode.lo ext/standard/filters.lo ext/standard/proc_open.lo ext/standard/streamsfuncs.lo ext/standard/http.lo ext/tokenizer/tokenizer.lo ext/xml/xml.lo ext/xml/compat.lo ext/xmlreader/php_xmlreader.lo ext/xmlwriter/php_xmlwriter.lo TSRM/TSRM.lo TSRM/tsrm_strtok_r.lo TSRM/tsrm_virtual_cwd.lo main/main.lo main/snprintf.lo main/spprintf.lo main/php_sprintf.lo main/safe_mode.lo main/fopen_wrappers.lo main/alloca.lo main/php_scandir.lo main/php_ini.lo main/SAPI.lo main/rfc1867.lo main/php_content_types.lo main/strlcpy.lo main/strlcat.lo main/mergesort.lo main/reentrancy.lo main/php_variables.lo main/php_ticks.lo main/network.lo main/php_open_temporary_file.lo main/php_logos.lo main/output.lo main/streams/streams.lo main/streams/cast.lo main/streams/memory.lo main/streams/filter.lo main/streams/plain_wrapper.lo main/streams/userspace.lo main/streams/transports.lo main/streams/xp_socket.lo main/streams/mmap.lo Zend/zend_language_parser.lo Zend/zend_language_scanner.lo Zend/zend_ini_parser.lo Zend/zend_ini_scanner.lo Zend/zend_alloc.lo Zend/zend_compile.lo Zend/zend_constants.lo Zend/zend_dynamic_array.lo Zend/zend_execute_API.lo Zend/zend_highlight.lo Zend/zend_llist.lo Zend/zend_opcode.lo Zend/zend_operators.lo Zend/zend_ptr_stack.lo Zend/zend_stack.lo Zend/zend_variables.lo Zend/zend.lo Zend/zend_API.lo Zend/zend_extensions.lo Zend/zend_hash.lo Zend/zend_list.lo Zend/zend_indent.lo Zend/zend_builtin_functions.lo Zend/zend_sprintf.lo Zend/zend_ini.lo Zend/zend_qsort.lo Zend/zend_multibyte.lo Zend/zend_ts_hash.lo Zend/zend_stream.lo Zend/zend_iterators.lo Zend/zend_interfaces.lo Zend/zend_exceptions.lo Zend/zend_strtod.lo Zend/zend_objects.lo Zend/zend_object_handlers.lo Zend/zend_objects_API.lo Zend/zend_mm.lo Zend/zend_default_classes.lo Zend/zend_execute.lo sapi/cli/php_cli.lo sapi/cli/php_cli_readline.lo sapi/cli/getopt.lo main/internal_functions_cli.lo -lcrypt -lcrypt -lrt -lmysqlclient -lt1 -lpng -lz -ljpeg -lcurl -lbz2 -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lcurl -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -lidn -lssl -lcrypto -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lz -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -o sapi/cli/php<br />
ext/gd/libgd/.libs/gdkanji.o(.text+0x5b): In function `do_convert&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/gd/libgd/gdkanji.c:350: undefined reference to `libiconv_open&#8217;<br />
ext/gd/libgd/.libs/gdkanji.o(.text+0xa1):/home/jjdai/work/zhupiter/php-5.2.0/ext/gd/libgd/gdkanji.c:365: undefined reference to `libiconv&#8217;<br />
ext/gd/libgd/.libs/gdkanji.o(.text+0xb0):/home/jjdai/work/zhupiter/php-5.2.0/ext/gd/libgd/gdkanji.c:381: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;155): In function `_php_iconv_appendl&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:335: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;219):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:372: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x2b0): In function `php_iconv_string&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:428: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x2e8):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:437: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;309):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:450: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x32c):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:461: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x37d): In function `_php_iconv_strlen&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:586: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x3d8):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:609: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;402):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:643: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x47e): In function `_php_iconv_strpos&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:828: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x4e4):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:853: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;574):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:967: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x6fd): In function `_php_iconv_mime_decode&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1328: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x7a9):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1797: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x7bd):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1800: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0xa67):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1439: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0xa79):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1442: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;1025): In function `zif_iconv_substr&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:699: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x10c1):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:722: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;1108):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:779: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x111d):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:783: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x123e):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:730: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;1738): In function `zif_iconv_mime_encode&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1017: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;1756):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1031: undefined reference to `libiconv_open&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0&#215;1993):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1290: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x19ad):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1293: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x1b01):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1102: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x1b33):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1134: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x1b5e):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1150: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x1e10):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1202: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x1e3c):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1233: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x207f):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:1277: more undefined references to `libiconv&#8217; follow<br />
ext/iconv/.libs/iconv.o(.text+0x2c08): In function `php_iconv_stream_filter_dtor&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:2393: undefined reference to `libiconv_close&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x2cf2): In function `php_iconv_stream_filter_append_bucket&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:2543: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x2d34):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:2543: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x2de7):/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:2465: undefined reference to `libiconv&#8217;<br />
ext/iconv/.libs/iconv.o(.text+0x30e2): In function `php_iconv_stream_filter_factory_create&#8217;:<br />
/home/jjdai/work/zhupiter/php-5.2.0/ext/iconv/iconv.c:2419: undefined reference to `libiconv_open&#8217;<br />
collect2: ld returned 1 exit status<br />
make: *** [sapi/cli/php] Error 1<br />
[错误]error while loading shared libraries: libiconv.so.2:<br />
Tags:error Posted in webserver:-)抢沙发<br />
error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory<br />
安装好apache后apache无法启动<br />
问题是找不到共享库，查看apache的出错文件，查找的位置是/usr/lib，但实际上find / -name libiconv.so.2是可以找到了，位置在/usr/local/lib/<br />
只要加一个链接就行<br />
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2<br />
其它有关库类找不着的都应该可以查看一下是否默认库的位置和实际位置不符</p>
<p>Php5.2.9下面安装pear<br />
访问 http://pear.php.net/go-pear  将这个页面的内容全选，复制 并保存成一个go-pear.php文件，然后将这个文件放到某个目录下面，然后 php –q go-pear.php 然后，按照提示进行安装。<br />
/home/tiger/evan/php5-fastcgi/bin/php -q go-pear.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/866.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx在openBSD下跑反向代理负载均衡</title>
		<link>http://www.evanjiang.net.cn/archives/581.html</link>
		<comments>http://www.evanjiang.net.cn/archives/581.html#comments</comments>
		<pubDate>Wed, 25 Feb 2009 12:47:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[openbsd unix]]></category>
		<category><![CDATA[nginx openbsd 反向代理 负载均衡]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=581</guid>
		<description><![CDATA[<p>1，本文的实验环境：
        当时做完了OpenBSD+Nginx+php+mysql的实验，直接将该虚拟机克隆两份。如果对下文中的“二号机、三号机”配置有兴趣的可以看看那个帖
        一号机，（192.168.118.135）将旧的和mysql/php有关系的nginx.conf干掉，重写nginx.conf。也就是说不启用php/mysql，只用本机的nginx做反向代理。
        二号机，（192.168.118.136）保持着原有的架构，并在/var/nginx/html下面新建一个index.php页面，页面内容自定啦，但必须和下面的三号机有所区别。
        三号机，（192.168.118.137）保持着原有的架构，并在/var/nginx/html下面新建一个index.php页面，页面内容自定啦，但必须和上面的二号机有所区别。
        四号机，（192.168.118.132）以前做实验用过的一个redhat5的机器，是一个tomcat服务器，只装了jdk和tomcat并设置了环境变量。
        客户机，本机是winxp，也是上面四个试验机的宿主机，改过了本机的hosts文件。C:\WINDOWS\system32\drivers\etc\hosts ，这个文件没后缀名，但可以用写字板或记事本打开。加入如下内容：
      [...]]]></description>
			<content:encoded><![CDATA[<p>1，本文的实验环境：<br />
        当时做完了OpenBSD+Nginx+php+mysql的实验，直接将该虚拟机克隆两份。如果对下文中的“二号机、三号机”配置有兴趣的可以看看那个帖<br />
        一号机，（192.168.118.135）将旧的和mysql/php有关系的nginx.conf干掉，重写nginx.conf。也就是说不启用php/mysql，只用本机的nginx做反向代理。<br />
        二号机，（192.168.118.136）保持着原有的架构，并在/var/nginx/html下面新建一个index.php页面，页面内容自定啦，但必须和下面的三号机有所区别。<br />
        三号机，（192.168.118.137）保持着原有的架构，并在/var/nginx/html下面新建一个index.php页面，页面内容自定啦，但必须和上面的二号机有所区别。<br />
        四号机，（192.168.118.132）以前做实验用过的一个redhat5的机器，是一个tomcat服务器，只装了jdk和tomcat并设置了环境变量。<br />
        客户机，本机是winxp，也是上面四个试验机的宿主机，改过了本机的hosts文件。C:\WINDOWS\system32\drivers\etc\hosts ，这个文件没后缀名，但可以用写字板或记事本打开。加入如下内容：<br />
                192.168.118.135                test1.com<br />
                192.168.118.135                test2.com<br />
                192.168.118.135                test3.com<br />
        也就是说，要把三个域名的IP都指到一号试验机上去。<br />
<span id="more-581"></span></p>
<p>3，首先启动二、三、四号机器，在测试机上打开这三台机器的web页面，确认各自的nginx、php、tomcat工作正常，其中二、三号机器是nginx+php,用的80端口，四号机器一个裸奔的tomcat，用的 8080端口。</p>
<p>4，如下是重写并可应用的一号机的nginx.conf文件。对部分内容我做了特殊标注，大部分配置可以参考本站关于nginx设定的一些文章。<br />
cat  /etc/nginx/nginx.conf<br />
#user nobody;<br />
worker_processes 1;</p>
<p>error_log  /var/log/nginx/error.log  crit;<br />
pid        /var/run/nginx.pid;<br />
#这里的nginx是用OpenBSD自己pkg 包管理系统装上去的，所以log等信息位置和编译安装的不太一样。</p>
<p>worker_rlimit_nofile 51200;<br />
events<br />
{<br />
    use kqueue;<br />
#epoll是linux最优模式，经实验，在openBSD下不可用这种模式。百度之发现有如下模式：<br />
#<br />
#nginx以module的方式提供了select语义的多种实现：poll   devpoll  epoll  eventport  kqueue  rtsig后面4种，都是BSD/Linux为加速IO操作而提供的异步IO模型<br />
#<br />
#<br />
    worker_connections 51200;<br />
}<br />
http<br />
{<br />
    include       mime.types;<br />
    default_type  application/octet-stream;<br />
    #charset  gb2312;</p>
<p>    server_names_hash_bucket_size 128;<br />
    client_header_buffer_size 32k;<br />
    large_client_header_buffers 4 32k;<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
    sendfile on;<br />
    tcp_nopush     on;<br />
    keepalive_timeout 3;<br />
#为了做测试，故意把keepalive改小的，生产环境设置60s吧。<br />
    tcp_nodelay on;<br />
    #gzip on;<br />
    #gzip_min_length  1k;<br />
    #gzip_buffers     4 16k;<br />
    #gzip_http_version 1.0;<br />
    #gzip_comp_level 2;<br />
    #gzip_types       text/plain application/x-javascript text/css application/xml;<br />
    #gzip_vary on;<br />
    upstream  test1.com  {<br />
        server   192.168.118.136:80;<br />
        server   192.168.118.137:80;</p>
<p>    }</p>
<p>    upstream  test2.com  {<br />
        server   192.168.118.136:80 weight=10;<br />
        server   192.168.118.137:80;<br />
  # weight是权重的意思，默认权重是1，</p>
<p>    }</p>
<p>    upstream  test3.com<br />
        {<br />
                server   192.168.118.132:8080;</p>
<p>        }</p>
<p>server {<br />
        listen   80;<br />
        server_name test1.com;<br />
                #这里的test1是监听的客户端访问的域名<br />
        location /{<br />
        proxy_pass              http://test1.com;<br />
                #这里的test1是上文提到的upstream啦，别和客户访问的域名弄混。<br />
        proxy_set_header  X-Real-IP  $remote_addr;<br />
        }<br />
        }</p>
<p>server {<br />
        listen   80;<br />
        server_name test2.com;<br />
        location /{<br />
        proxy_pass              http://test2.com;<br />
        proxy_set_header  X-Real-IP  $remote_addr;<br />
        }<br />
        }</p>
<p>server {<br />
        listen   80;<br />
        server_name test3.com;<br />
        location /{<br />
        proxy_pass              http://test3.com;<br />
        proxy_set_header  X-Real-IP  $remote_addr;<br />
        }<br />
        }<br />
_
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
___________________________________________________<br />
5，启动一号机的nginx，测试开始。<br />
在本机访问http://test1.com/ http://test2.com/  http://test3.com/<br />
请注意test1是否在二号、三号机之间不停切换？在上图中写到要让二号三号机上的index.php文件不太一样，就是为了区分两台web服务器的。如果不怎么切换，请考虑你的浏览器的缓存问题。如果还不切换，可以考虑down掉一台机器的nginx，看访问请求是否会转到另一台服务器上。<br />
test2和test1的情况类似，只是test2做了权重设置，所以二号机应用的几率要比三号机大很多，如果总是轮不到三号机接任务，可以考虑更改权重实验一下，也可以考虑把二号机的nginx暂停一下。<br />
test3的要求很简单，能转到四号机的8080端口，把tomcat的那个默认控制界面show出来就可以</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/581.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx-0.7.17 configure参数详解</title>
		<link>http://www.evanjiang.net.cn/archives/365.html</link>
		<comments>http://www.evanjiang.net.cn/archives/365.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 18:55:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[Nginx configure 参数详解]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=365</guid>
		<description><![CDATA[<p>源代码解压后即可输入</p>
<p>./configure &#8211;help</p>
<p>进行查看:</p>
<p># ./configure &#8211;help
  &#8211;help                             this message
  &#8211;prefix=PATH                  [...]]]></description>
			<content:encoded><![CDATA[<p>源代码解压后即可输入</p>
<p>./configure &#8211;help</p>
<p>进行查看:</p>
<p># ./configure &#8211;help<br />
  &#8211;help                             this message<br />
  &#8211;prefix=PATH                      set the installation prefix<br />
  &#8211;sbin-path=PATH                   set path to the nginx binary file<br />
  &#8211;conf-path=PATH                   set path to the nginx.conf file<br />
  &#8211;error-log-path=PATH              set path to the error log<br />
  &#8211;pid-path=PATH                    set path to nginx.pid file<br />
  &#8211;lock-path=PATH                   set path to nginx.lock file<br />
  &#8211;user=USER                        set non-privilege user<br />
                                     for the worker processes<br />
  &#8211;group=GROUP                      set non-privilege group<br />
                                     for the worker processes<br />
  &#8211;builddir=DIR                     set the build directory<br />
<span id="more-365"></span><br />
  &#8211;with-rtsig_module                enable rtsig module<br />
  &#8211;with-select_module               enable select module<br />
  &#8211;without-select_module            disable select module<br />
  &#8211;with-poll_module                 enable poll module<br />
  &#8211;without-poll_module              disable poll module<br />
  &#8211;with-http_ssl_module             enable ngx_http_ssl_module<br />
  &#8211;with-http_realip_module          enable ngx_http_realip_module<br />
  &#8211;with-http_addition_module        enable ngx_http_addition_module<br />
  &#8211;with-http_xslt_module            enable ngx_http_xslt_module<br />
  &#8211;with-http_sub_module             enable ngx_http_sub_module<br />
  &#8211;with-http_dav_module             enable ngx_http_dav_module<br />
  &#8211;with-http_flv_module             enable ngx_http_flv_module<br />
  &#8211;with-http_gzip_static_module     enable ngx_http_gzip_static_module<br />
  &#8211;with-http_random_index_module    enable ngx_http_random_index_module<br />
  &#8211;with-http_stub_status_module     enable ngx_http_stub_status_module<br />
  &#8211;without-http_charset_module      disable ngx_http_charset_module<br />
  &#8211;without-http_gzip_module         disable ngx_http_gzip_module<br />
  &#8211;without-http_ssi_module          disable ngx_http_ssi_module<br />
  &#8211;without-http_userid_module       disable ngx_http_userid_module<br />
  &#8211;without-http_access_module       disable ngx_http_access_module<br />
  &#8211;without-http_auth_basic_module   disable ngx_http_auth_basic_module<br />
  &#8211;without-http_autoindex_module    disable ngx_http_autoindex_module<br />
  &#8211;without-http_geo_module          disable ngx_http_geo_module<br />
  &#8211;without-http_map_module          disable ngx_http_map_module<br />
  &#8211;without-http_referer_module      disable ngx_http_referer_module<br />
  &#8211;without-http_rewrite_module      disable ngx_http_rewrite_module<br />
  &#8211;without-http_proxy_module        disable ngx_http_proxy_module<br />
  &#8211;without-http_fastcgi_module      disable ngx_http_fastcgi_module<br />
  &#8211;without-http_memcached_module    disable ngx_http_memcached_module<br />
  &#8211;without-http_limit_zone_module   disable ngx_http_limit_zone_module<br />
  &#8211;without-http_empty_gif_module    disable ngx_http_empty_gif_module<br />
  &#8211;without-http_browser_module      disable ngx_http_browser_module<br />
  &#8211;without-http_upstream_ip_hash_module<br />
                                     disable ngx_http_upstream_ip_hash_module<br />
  &#8211;with-http_perl_module            enable ngx_http_perl_module<br />
  &#8211;with-perl_modules_path=PATH      set path to the perl modules<br />
  &#8211;with-perl=PATH                   set path to the perl binary<br />
  &#8211;http-log-path=PATH               set path to the http access log<br />
  &#8211;http-client-body-temp-path=PATH  set path to the http client request body<br />
                                     temporary files<br />
  &#8211;http-proxy-temp-path=PATH        set path to the http proxy temporary files<br />
  &#8211;http-fastcgi-temp-path=PATH      set path to the http fastcgi temporary<br />
                                     files<br />
  &#8211;without-http                     disable HTTP server<br />
  &#8211;with-mail                        enable POP3/IMAP4/SMTP proxy module<br />
  &#8211;with-mail_ssl_module             enable ngx_mail_ssl_module<br />
  &#8211;without-mail_pop3_module         disable ngx_mail_pop3_module<br />
  &#8211;without-mail_imap_module         disable ngx_mail_imap_module<br />
  &#8211;without-mail_smtp_module         disable ngx_mail_smtp_module<br />
  &#8211;with-google_perftools_module     enable ngx_google_perftools_module<br />
  &#8211;with-cpp_test_module             enable ngx_cpp_test_module<br />
  &#8211;add-module=PATH                  enable an external module<br />
  &#8211;with-cc=PATH                     set path to C compiler<br />
  &#8211;with-cpp=PATH                    set path to C preprocessor<br />
  &#8211;with-cc-opt=OPTIONS              set additional options for C compiler<br />
  &#8211;with-ld-opt=OPTIONS              set additional options for linker<br />
  &#8211;with-cpu-opt=CPU                 build for specified CPU, the valid values:<br />
                                     pentium, pentiumpro, pentium3, pentium4,<br />
                                     athlon, opteron, sparc32, sparc64, ppc64<br />
  &#8211;without-pcre                     disable PCRE libarary usage<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
  &#8211;with-pcre=DIR                    set path to PCRE library sources<br />
  &#8211;with-pcre-opt=OPTIONS            set additional options for PCRE building<br />
  &#8211;with-md5=DIR                     set path to md5 library sources<br />
  &#8211;with-md5-opt=OPTIONS             set additional options for md5 building<br />
  &#8211;with-md5-asm                     use md5 assembler sources<br />
  &#8211;with-sha1=DIR                    set path to sha1 library sources<br />
  &#8211;with-sha1-opt=OPTIONS            set additional options for sha1 building<br />
  &#8211;with-sha1-asm                    use sha1 assembler sources<br />
  &#8211;with-zlib=DIR                    set path to zlib library sources<br />
  &#8211;with-zlib-opt=OPTIONS            set additional options for zlib building<br />
  &#8211;with-zlib-asm=CPU                use zlib assembler sources optimized<br />
                                     for specified CPU, the valid values:<br />
                                     pentium, pentiumpro<br />
  &#8211;with-openssl=DIR                 set path to OpenSSL library sources<br />
  &#8211;with-openssl-opt=OPTIONS         set additional options for OpenSSL building<br />
  &#8211;with-debug                       enable the debugging logging</p>
<p>下面是对应的中文翻译:</p>
<p># ./configure &#8211;help<br />
  &#8211;help                             显示本提示信息<br />
  &#8211;prefix=PATH                      设定安装目录<br />
  &#8211;sbin-path=PATH                   设定程序文件目录<br />
  &#8211;conf-path=PATH                   设定配置文件(nginx.conf)目录<br />
  &#8211;error-log-path=PATH              设定错误日志目录<br />
  &#8211;pid-path=PATH                    设定pid文件(nginx.pid)目录<br />
  &#8211;lock-path=PATH                   设定lock文件(nginx.lock)目录<br />
  &#8211;user=USER                        设定程序运行的用户环境(www)<br />
  &#8211;group=GROUP                      设定程序运行的组环境(www)<br />
  &#8211;builddir=DIR                     设定程序编译目录<br />
  &#8211;with-rtsig_module                允许rtsig模块<br />
  &#8211;with-select_module               允许select模块(一种轮询模式,不推荐用在高载环境)<br />
  &#8211;without-select_module            不使用select模块<br />
  &#8211;with-poll_module                 允许poll模块(一种轮询模式,不推荐用在高载环境)<br />
  &#8211;without-poll_module              不使用poll模块<br />
  &#8211;with-http_ssl_module             允许ngx_http_ssl_module模块(Apache对应:mod_ssl)<br />
  &#8211;with-http_realip_module          允许ngx_http_realip_module模块(mod_rpaf)<br />
  &#8211;with-http_addition_module        允许ngx_http_addition_module模块(mod_layout)<br />
  &#8211;with-http_xslt_module            允许ngx_http_xslt_module模块<br />
  &#8211;with-http_sub_module             允许ngx_http_sub_module模块<br />
  &#8211;with-http_dav_module             允许ngx_http_dav_module模块(mod_dav)<br />
  &#8211;with-http_flv_module             允许ngx_http_flv_module模块(mod_flvx)<br />
  &#8211;with-http_gzip_static_module     允许ngx_http_gzip_static_module模块(mod_dflate)<br />
  &#8211;with-http_random_index_module    允许ngx_http_random_index_module模块(mod_autoindex)<br />
  &#8211;with-http_stub_status_module     允许ngx_http_stub_status_module模块(mod_status)<br />
  &#8211;without-http_charset_module      不使用ngx_http_charset_module模块<br />
  &#8211;without-http_gzip_module         不使用ngx_http_gzip_module模块<br />
  &#8211;without-http_ssi_module          不使用ngx_http_ssi_module模块<br />
  &#8211;without-http_userid_module       不使用ngx_http_userid_module模块<br />
  &#8211;without-http_access_module       不使用ngx_http_access_module模块<br />
  &#8211;without-http_auth_basic_module   不使用ngx_http_auth_basic_module模块<br />
  &#8211;without-http_autoindex_module    不使用ngx_http_autoindex_module模块<br />
  &#8211;without-http_geo_module          不使用ngx_http_geo_module模块<br />
  &#8211;without-http_map_module          不使用ngx_http_map_module模块<br />
  &#8211;without-http_referer_module      不使用ngx_http_referer_module模块<br />
  &#8211;without-http_rewrite_module      不使用ngx_http_rewrite_module模块<br />
  &#8211;without-http_proxy_module        不使用ngx_http_proxy_module模块<br />
  &#8211;without-http_fastcgi_module      不使用ngx_http_fastcgi_module模块<br />
  &#8211;without-http_memcached_module    不使用ngx_http_memcached_module模块<br />
  &#8211;without-http_limit_zone_module   不使用ngx_http_limit_zone_module模块<br />
  &#8211;without-http_empty_gif_module    不使用ngx_http_empty_gif_module模块<br />
  &#8211;without-http_browser_module      不使用ngx_http_browser_module模块<br />
  &#8211;without-http_upstream_ip_hash_module<br />
                                     不使用ngx_http_upstream_ip_hash_module模块<br />
  &#8211;with-http_perl_module            允许ngx_http_perl_module模块<br />
  &#8211;with-perl_modules_path=PATH      设置perl模块路径<br />
  &#8211;with-perl=PATH                   设置perl库文件路径<br />
  &#8211;http-log-path=PATH               设置access log文件路径<br />
  &#8211;http-client-body-temp-path=PATH  设置客户端请求临时文件路径<br />
  &#8211;http-proxy-temp-path=PATH        设置http proxy临时文件路径<br />
  &#8211;http-fastcgi-temp-path=PATH      设置http fastcgi临时文件路径<br />
  &#8211;without-http                     不使用HTTP server功能<br />
  &#8211;with-mail                        允许POP3/IMAP4/SMTP代理模块<br />
  &#8211;with-mail_ssl_module             允许ngx_mail_ssl_module模块<br />
  &#8211;without-mail_pop3_module         不允许ngx_mail_pop3_module模块<br />
  &#8211;without-mail_imap_module         不允许ngx_mail_imap_module模块<br />
  &#8211;without-mail_smtp_module         不允许ngx_mail_smtp_module模块<br />
  &#8211;with-google_perftools_module     允许ngx_google_perftools_module模块(调试用)<br />
  &#8211;with-cpp_test_module             允许ngx_cpp_test_module模块<br />
  &#8211;add-module=PATH                  允许使用外部模块,以及路径<br />
  &#8211;with-cc=PATH                     设置C编译器路径<br />
  &#8211;with-cpp=PATH                    设置C预处理路径<br />
  &#8211;with-cc-opt=OPTIONS              设置C编译器参数<br />
  &#8211;with-ld-opt=OPTIONS              设置连接文件参数<br />
  &#8211;with-cpu-opt=CPU                 为指定CPU优化,可选参数有:<br />
                                     pentium, pentiumpro, pentium3, pentium4,<br />
                                     athlon, opteron, sparc32, sparc64, ppc64<br />
  &#8211;without-pcre                     不使用pcre库文件<br />
  &#8211;with-pcre=DIR                    设定PCRE库路径<br />
  &#8211;with-pcre-opt=OPTIONS            设置PCRE运行参数<br />
  &#8211;with-md5=DIR                     设定md5库文件路径<br />
  &#8211;with-md5-opt=OPTIONS             设置md5运行参数<br />
  &#8211;with-md5-asm                     使用md5源文件编译<br />
  &#8211;with-sha1=DIR                    设定sha1库文件路径<br />
  &#8211;with-sha1-opt=OPTIONS            设置sha1运行参数<br />
  &#8211;with-sha1-asm                    使用sha1源文件编译<br />
  &#8211;with-zlib=DIR                    设定zlib库文件路径<br />
  &#8211;with-zlib-opt=OPTIONS            设置zlib运行参数<br />
  &#8211;with-zlib-asm=CPU                使zlib对特定的CPU进行优化,可选参数:<br />
                                     pentium, pentiumpro<br />
  &#8211;with-openssl=DIR                 设定OpenSSL库文件路径<br />
  &#8211;with-openssl-opt=OPTIONS         设置OpenSSL运行参数<br />
  &#8211;with-debug                       允许调试日志</p>
<p>介绍一个Nginx外部模块:<br />
 
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
ngx_http_accesskey_module<br />
封堵下载软件的好东东,只有远程IP地址符合加密字串的才被允许访问.示例如下:<br />
    location /download {<br />
        accesskey             on;<br />
        accesskey_hashmethod md5;<br />
        accesskey_arg         &#8220;key&#8221;;<br />
        accesskey_signature   &#8220;mypass$remote_addr&#8221;;<br />
    }<br />
模块地址:</p>
<p>http://wiki.codemongers.com/NginxHttpAccessKeyModule</p>
<p>其它更多外部模块请访问:</p>
<p>http://wiki.codemongers.com/NginxModules</p>
<p>在OpenBSD环境下安装Nginx需要注意下,在./configure之后还需要修改一下源文件，否则后面make过不去:</p>
<p>vi +74 src/os/unix/ngx_posix_config.h</p>
<p>将这行的malloc.h改成stdlib.h,保存退出.</p>
<p>然后再执行make &#038;&#038; make install即可!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/365.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx在FreeBsd下的安装与配置</title>
		<link>http://www.evanjiang.net.cn/archives/254.html</link>
		<comments>http://www.evanjiang.net.cn/archives/254.html#comments</comments>
		<pubDate>Fri, 16 Jan 2009 07:56:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[freebsd unix]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[nginx  Freebsd 安装 配置]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=254</guid>
		<description><![CDATA[<p>What for? Nginx is a great replacement of Apache with very low memory footprint and contrary to</p>
<p>Lighttpd, doesn&#8217;t suffer from memory leak over time. You can then use all the memory left to</p>
<p>unleash the power of mysql for instance by increasing the default query cache.</p>
<p>
Step1 安装必备软件
MySQL+PHP+Pcre
cd /usr/ports/database/mysql50-server &#38;&#38; make install clean
cd /usr/lang/php5/ &#38;&#38; make install [...]]]></description>
			<content:encoded><![CDATA[<p>What for? Nginx is a great replacement of Apache with very low memory footprint and contrary to</p>
<p>Lighttpd, doesn&#8217;t suffer from memory leak over time. You can then use all the memory left to</p>
<p>unleash the power of mysql for instance by increasing the default query cache.</p>
<p><span id="more-254"></span><br />
Step1 安装必备软件<br />
MySQL+PHP+Pcre<br />
cd /usr/ports/database/mysql50-server &amp;&amp; make install clean<br />
cd /usr/lang/php5/ &amp;&amp; make install clean<br />
cd /usr/devel/pcre &amp;&amp; make install clean</p>
<p>Step2 安装FastCgi(借用lighttpd的spawn-cgi)<br />
wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2<br />
tar -xvjf lighttpd-1.4.18.tar.bz2 cd lighttpd-1.4.18<br />
cd lighttpd-1.4.18<br />
./configure<br />
make<br />
cp src/spawn-fcgi /usr/bin/spawn-fcgi</p>
<p>vi /usr/bin/php-fastcgi<br />
#!/bin/sh</p>
<p>/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -f /usr/local/bin/php-cgi<br />
chmod 755 /usr/bin/php-fastcgi</p>
<p>vi /etc/rc.d/init-fastcgi<br />
#!/bin/bash</p>
<p>PHP_SCRIPT=/usr/bin/php-fastcgi<br />
RETVAL=0<br />
case &#8220;$1&#8243; in<br />
start)<br />
$PHP_SCRIPT<br />
RETVAL=$?<br />
;;<br />
stop)<br />
killall -9 php<br />
RETVAL=$?<br />
;;<br />
restart)<br />
killall -9 php<br />
$PHP_SCRIPT<br />
RETVAL=$?<br />
;;<br />
*)<br />
echo &#8220;Usage: php-fastcgi {start|stop|restart}&#8221;<br />
exit 1<br />
;;<br />
esac<br />
exit $RETVAL<br />
chmod 755 /etc/rc.d/init-fastcgi</p>
<p>Step3 安装Nginx(本文用目前稳定版)<br />
wget http://sysoev.ru/nginx/nginx-0.5.32.tar.gz<br />
tar xvzf nginx-0.5.32.tar.gz<br />
cd nginx-0.5.32<br />
./configure (默认安装在/usr/local/nginx)<br />
make &amp;&amp; make install</p>
<p>Step4 配置Nginx (主要修改)<br />
cp conf/fastcgi_params /usr/local/nginx/conf/fastcgi_params<br />
location / {<br />
root /var/www/wordpress; (此处就是你的web根目录)<br />
index index.php index.html index.htm;<br />
}<br />
location ~ .*\.php$ {<br />
fastcgi_pass 127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
fastcgi_param SCRIPT_FILENAME /var/www/wordpress$fastcgi_script_name;<br />
include /usr/local/nginx/conf/fastcgi_params;<br />
}</p>
<p>Step5 启动<br />
/etc/rc.d/init-fastcgi start<br />
/usr/local/nginx/sbin/nginx 效果如下：</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/254.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache+resin+pureftp的虚拟主机和负载均衡</title>
		<link>http://www.evanjiang.net.cn/archives/183.html</link>
		<comments>http://www.evanjiang.net.cn/archives/183.html#comments</comments>
		<pubDate>Tue, 30 Dec 2008 17:05:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[redhat linux]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[负载均衡]]></category>
		<category><![CDATA[apache resin pureftp linux  负载均衡]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=183</guid>
		<description><![CDATA[<p> </p>
<p class="MsoNormal" style="text-align: left;">1、前言</p>
<p class="MsoNormal">  apache＋resin来做想来大家都比较熟悉，一般的配置都是很熟悉的，俺查看一些论坛上的文章，这方便的文章比较多。在这里，俺只要写写apache+resin实现独立的虚拟主机和resin自带的负载均衡。 </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">2、系统和环境： </p>
<p class="MsoNormal">redhat9 and solaris9 </p>
<p class="MsoNormal">httpd-2.50 </p>
<p class="MsoNormal">resin-3.06 </p>
<p class="MsoNormal">pure-ftpd-1.0.17a.tar.gz </p>
<p class="MsoNormal">3、安装软件： </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">3.1、安装apache： </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"># tar zxvf httpd-2.49.tar.gz </p>
<p class="MsoNormal"># cd httpd-2.49 </p>
<p class="MsoNormal"># ./configure &#8211;prefix=/usr/local/apache2 &#8211;enable-so &#8211;with-mpm=worker </p>
<p class="MsoNormal"># make </p>
<p class="MsoNormal"># make install </p>
<p class="MsoNormal"> 
</p>
<p class="MsoNormal">3.2、安装resin： </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"># tar zxvf [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p class="MsoNormal" style="text-align: left;"><span lang="EN-US">1</span><span>、前言</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>  </span>apache</span><span>＋</span><span lang="EN-US">resin</span><span>来做想来大家都比较熟悉，一般的配置都是很熟悉的，俺查看一些论坛上的文章，这方便的文章比较多。在这里，俺只要写写</span><span lang="EN-US">apache+resin</span><span>实现独立的虚拟主机和</span><span lang="EN-US">resin</span><span>自带的负载均衡。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">2</span><span>、系统和环境：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">redhat9 and solaris9 </span></p>
<p class="MsoNormal"><span lang="EN-US">httpd-2.50 </span></p>
<p class="MsoNormal"><span lang="EN-US">resin-3.06 </span></p>
<p class="MsoNormal"><span lang="EN-US">pure-ftpd-1.0.17a.tar.gz </span></p>
<p class="MsoNormal"><span lang="EN-US">3</span><span>、安装软件：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">3.1</span><span>、安装</span><span lang="EN-US">apache</span><span>：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># tar zxvf httpd-2.49.tar.gz </span></p>
<p class="MsoNormal"><span lang="EN-US"># cd httpd-2.49 </span></p>
<p class="MsoNormal"><span lang="EN-US"># ./configure &#8211;prefix=/usr/local/apache2 &#8211;enable-so &#8211;with-mpm=worker </span></p>
<p class="MsoNormal"><span lang="EN-US"># make </span></p>
<p class="MsoNormal"><span lang="EN-US"># make install </span></p>
<p class="MsoNormal"><span lang="EN-US"> <span id="more-183"></span><br />
</span></p>
<p class="MsoNormal"><span lang="EN-US">3.2</span><span>、安装</span><span lang="EN-US">resin</span><span>：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># tar zxvf resin-3.06.tar.gz </span></p>
<p class="MsoNormal"><span lang="EN-US"># cd resin03.06 </span></p>
<p class="MsoNormal"><span lang="EN-US"># ./configure &#8211;prefix=/usr/local/resin &#8211;with-apxs=/usr/local/apache2/bin/apxs </span></p>
<p class="MsoNormal"><span lang="EN-US"># make </span></p>
<p class="MsoNormal"><span lang="EN-US"># make install </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">3.3</span><span>、安装</span><span lang="EN-US">pureftp </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># tar zxvf pure-ftpd-1.0.17a.tar.gz<span>  </span></span></p>
<p class="MsoNormal"><span lang="EN-US"># cd pure-ftpd-1.0.17a </span></p>
<p class="MsoNormal"><span lang="EN-US"># ./configure &#8211;prefix=/usr/local/pureftpd </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&#8211;without-inetd &#8211;with-puredb </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&#8211;with-cookie &#8211;with-throttling </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&#8211;with-ratios &#8211;with-quotas<span>  </span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&#8211;with-ftpwho &#8211;with-largefile </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&#8211;with-welcomemsg </span></p>
<p class="MsoNormal"><span lang="EN-US"># make </span></p>
<p class="MsoNormal"><span lang="EN-US"># make install </span></p>
<p class="MsoNormal"><span lang="EN-US"># mkdir /usr/local/pureftpd/etc </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">4</span><span>、配置软件：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span>目的：用</span><span lang="EN-US">apache</span><span>和</span><span lang="EN-US">resin</span><span>做基于域名的虚拟主机，启用</span><span lang="EN-US">resin</span><span>自身的负载均衡的引擎。</span><span lang="EN-US">resin</span><span>的负载均衡引擎实际上是可以启动多个</span><span lang="EN-US">java</span><span>响应进程，通过内部机制来进行负载均衡。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">4.1</span><span>、配置</span><span lang="EN-US">apache</span><span>：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># vi /usr/local/apache2/conf/httpd.conf </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>DirctoryIndex index.html index.jsp </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>AddDefaultCharset Off </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>User nobody </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>Group nobody </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>NamevirtualHost 211.11.11.11 </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>&lt;VirtualHost 211.11.11.11:80&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>ServerAdmin peng.zhang@bj.china.com </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>DocumentRoot /data/web/xcity </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>ServerName xcity.chinaunix.com </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>ErrorLog logs/xcity.chinaunix.com-error_log </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>CustomLog logs/xcity.chinaunix.com-access_log common </span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;/VirtualHost&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;VirtualHost 211.11.11.11:80&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>ServerAdmin peng.zhang@bj.china.com </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>DocumentRoot /data/web/sports </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>ServerName sports.chinaunix.com </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>ErrorLog logs/sports.chinaunix.com-error_log </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>CustomLog logs/sports.chinaunix.com-access_log common </span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;/VirtualHost&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8230;&#8230;.. </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8230;. </span></p>
<p class="MsoNormal"><span lang="EN-US"># mod_caucho Resin Configuration </span></p>
<p class="MsoNormal"><span lang="EN-US"># </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">ResinConfigServer 127.0.0.1 </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p class="MsoNormal"><span lang="EN-US">4.2</span><span>、配置</span><span lang="EN-US">resin</span><span>：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># vi /usr/local/resin/conf/resin.conf </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>&lt;cluster&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;a&#8221; host=&#8221;127.0.0.1&#8243; port=&#8221;6801&#8243; index=&#8221;1&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;b&#8221; host=&#8221;127.0.0.1&#8243; port=&#8221;6802&#8243; index=&#8221;2&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;c&#8221; host=&#8221;127.0.0.1&#8243; port=&#8221;6803&#8243; index=&#8221;3&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;d&#8221; host=&#8221;127.0.0.1&#8243; port=&#8221;6804&#8243; index=&#8221;4&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>&lt;/cluster&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;</span><span>注解：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">(</span><span>这里面，俺用系统本身的</span><span lang="EN-US">127.0.0.1,</span><span>绑定</span><span lang="EN-US">4</span><span>个端口做伏在均衡。还可以用不同的</span><span lang="EN-US">ip</span><span>地址和同一端口，来作。例如：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;cluster&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;a&#8221; host=&#8221;211.11.11.11&#8243; port=&#8221;6802&#8243; index=&#8221;1&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;b&#8221; host=&#8221;211.11.11.12&#8243; port=&#8221;6802&#8243; index=&#8221;2&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;c&#8221; host=&#8221;211.11.11.13&#8243; port=&#8221;6802&#8243; index=&#8221;3&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;srun id=&#8221;d&#8221; host=&#8221;211.11.11.14&#8243; port=&#8221;6802&#8243; index=&#8221;4&#8243;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>&lt;/cluster&gt;; </span></p>
<p class="MsoNormal"><span>还有些人，喜欢在</span><span lang="EN-US">apache</span><span>中设置每一个</span><span lang="EN-US">java</span><span>进程服务一个虚拟，这里俺们不推荐，这样做，就会失去引擎本身的意义。）</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;!&#8211; configures the default host, matching any host name &#8211;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span>&lt;host id=&#8217;xcity.chinaunix.com&#8217;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;document-directory&gt;;/data/web/xcity&lt;/document-directory&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>     </span>&lt;!&#8211; configures the root web-app &#8211;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>     </span>&lt;web-app id=&#8217;/'&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;!&#8211; adds xsl to the search path &#8211;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;class-loader&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>          </span>&lt;simple-loader path=&#8221;$host-root/xsl&#8221;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;/class-loader&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&lt;servlet-mapping url-pattern=&#8221;/servlet/*&#8221; servlet</span><span>－</span><span lang="EN-US">name=&#8221;invoker&#8221;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;/web-app&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;/host&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;host id=&#8217;sports.chinaunix.com&#8217;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;document-directory&gt;;/opt/web/sports&lt;/document-directory&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;!&#8211; configures the root web-app &#8211;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;web-app id=&#8217;/'&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;!&#8211; adds xsl to the search path &#8211;&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;class-loader&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;simple-loader path=&#8221;$host-root/xsl&#8221;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>        </span>&lt;/class-loader&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>       </span>&lt;servlet-mapping url-pattern=&#8221;/servlet/*&#8221; servlet-name=&#8221;invoker&#8221;/&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>      </span>&lt;/web-app&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>     </span>&lt;/host&gt;; </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8230;&#8230;.. </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8230;. </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;</span><span>注：这里面是基于域名的虚拟主机，如果是针对</span><span lang="EN-US">ip</span><span>的虚拟主机，在</span><span lang="EN-US">&lt;host id=&#8217;*.*.*.*&#8217;&gt;;</span><span>中，就应该是对应虚拟主机的</span><span lang="EN-US">ip</span><span>。也就是说，</span><span lang="EN-US">apache</span><span>和</span><span lang="EN-US">resin</span><span>关于虚拟主机的地方要保持一致。还有，在</span><span lang="EN-US">resin</span><span>中，对于每个虚拟主机所用的</span><span lang="EN-US">web-app</span><span>目录，其实是相对于她的家目录下的</span><span lang="EN-US">/</span><span>目录。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">4.3</span><span>、配置</span><span lang="EN-US">pureftp </span></p>
<p class="MsoNormal"><span lang="EN-US">1</span><span>、添加用户：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw useradd xcityr -f /usr/local/pureftp/etc/ftppasswd -u nobody -g nobody -d /data/web/xcity -m </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw useradd sports -f /usr/local/pureftp/etc/ftppasswd -u nobody -g nobody -d /data/web/sports -m </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>   </span>&#8212;</span><span>注：</span><span lang="EN-US">xcity </span><span>：</span><span lang="EN-US">ftp</span><span>用户</span><span lang="EN-US"><span>  </span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span>       </span>-f ftppasswd</span><span>：存放用户密码信息的文件</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>       </span>-u </span><span>用户</span><span lang="EN-US">uid<span>  </span></span><span>一般是系统的一个用户，就是你的</span><span lang="EN-US">ftp</span><span>用户的家目录的用户</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>       </span>-g </span><span>用户组</span><span lang="EN-US">id </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>     </span><span>  </span>-d </span><span>锁定用户在家目录</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>       </span>-m </span><span>使</span><span lang="EN-US">pureftp.d.passwd</span><span>写进</span><span lang="EN-US">pureftpd.pdb</span><span>，使更改生效。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">*</span><span>修改用户：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw usermod &#8211;help </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">*</span><span>删除用户：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw userdel &lt;login&gt;; [-f &lt;passwd file&gt;;] [-m] </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">*</span><span>更改拥护密码：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw passwd<span>  </span>&lt;login&gt;; [-f &lt;passwd file&gt;;] [-m] </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">*</span><span>查看用户详细内容：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw show <span>   </span>&lt;login&gt;; [-f &lt;passwd file&gt;;] </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">*</span><span>生成</span><span lang="EN-US">db</span><span>文件，使密码生效：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw mkdb<span>    </span>[&lt;puredb database file&gt;; [-f &lt;passwd file&gt;;]] </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">*</span><span>列出所有用户：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># pure-pw list<span>    </span>[-f &lt;passwd file&gt;;] </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">5</span><span>、启动脚本：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span>当系统在</span><span lang="EN-US">solaris</span><span>下：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">apache</span><span>和</span><span lang="EN-US">resin</span><span>的启动脚本：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># vi /etc/rc2.d/S99webapp </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- </span></p>
<p class="MsoNormal"><span lang="EN-US">/usr/local/resin/bin/httpd.sh -pid srun1.pid -server a start </span></p>
<p class="MsoNormal"><span lang="EN-US">/usr/local/resin/bin/httpd.sh -pid srun2.pid -server b start </span></p>
<p class="MsoNormal"><span lang="EN-US">/usr/local/resin/bin/httpd.sh -pid srun3.pid -server c start </span></p>
<p class="MsoNormal"><span lang="EN-US">/usr/local/resin/bin/httpd.sh -pid srun4.pid -server d start </span></p>
<p class="MsoNormal"><span lang="EN-US">/usr/local/apache2/bin/apachectl start </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">pureftp</span><span>启动脚本：</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>#!/bin/sh </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>     </span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>/usr/local/pureftpd/sbin/pure-ftpd -j -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb &amp; </span></p>
<p class="MsoNormal"><span lang="EN-US">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span>在</span><span lang="EN-US">linux</span><span>下，直接放到响应的开机启动等级目录下就</span><span lang="EN-US">ok</span><span>。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">6</span><span>、总结</span><span lang="EN-US"> </span></p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p class="MsoNormal"><span lang="EN-US"><span> </span>apache</span><span>＋</span><span lang="EN-US">resin</span><span>应该是个很好的</span><span lang="EN-US">java</span><span>应用平台。实际使用中，还是有很多技巧。看</span><span lang="EN-US">resin</span><span>官方论坛的一些资料，说</span><span lang="EN-US">resin3.x</span><span>以上的版本，对</span><span lang="EN-US">image</span><span>和</span><span lang="EN-US">html</span><span>的支持，比</span><span lang="EN-US">apache</span><span>响应更快。俺对此测试过，感觉还是有所欠缺。所以说，在大型一点的发布平台上，还是要</span><span lang="EN-US">apache</span><span>和</span><span lang="EN-US">resin</span><span>结合比较好。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><span>  </span></span><span>对于</span><span lang="EN-US">resin</span><span>的负载均衡使用上启动的进程数，俺认为还是要根据自己的机器实际情况来考虑的。少达不到效果，多会机器系统也是一个负载。个人认为，</span><span lang="EN-US">4</span><span>个可以作为一个默认的选择来考虑。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/183.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 Nginx 提升网站访问速度</title>
		<link>http://www.evanjiang.net.cn/archives/109.html</link>
		<comments>http://www.evanjiang.net.cn/archives/109.html#comments</comments>
		<pubDate>Fri, 19 Dec 2008 09:50:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[nginx 负载均衡]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=109</guid>
		<description><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left">本文主要介绍如何在 Linux 系统上安装高性能的 HTTP 服务器 —— Nginx、并在不改变原有网站结构的条件下用 Nginx 来提升网站的访问速度。</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left">Nginx 简介</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left">Nginx (&#8220;engine x&#8221;) 是一个高性能的 HTTP 和 反向代理 服务器，也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的，它已经在该站点运行超过两年半了。 [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">本文主要介绍如何在</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Linux </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">系统上安装高性能的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务器</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> —— Nginx</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、并在不改变原有网站结构的条件下用</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">来提升网站的访问速度。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N10053"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span></span></a><span style="mso-bookmark: N10053;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">简介</span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx</span></strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">(&#8220;engine x&#8221;) </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">是一个高性能的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">反向代理</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务器，也是一个</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> IMAP/POP3/SMTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">代理服务器。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">是由</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Igor Sysoev </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">为俄罗斯访问量第二的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Rambler.ru </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">站点开发的，它已经在该站点运行超过两年半了。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Igor </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">将源代码以类</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> BSD </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">许可证的形式发布。尽管还是测试版，但是，</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">根据最新一期（</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">08 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">年</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 6 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">月份）的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> NetCraft </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">调查报告显示，已经有超过两百万的主机使用了</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，这个数字超过了另外一个轻量级的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务器</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> lighttpd</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">排名第四，并且发展迅速。下面是这份报告的前几名的报表：</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span id="more-109"></span></span></p>
<table class="MsoNormalTable" style="mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">产品</span></strong><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">网站数</span></strong><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Apache</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">84,309,103</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">IIS</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">60,987,087</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Google GFE</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">10,465,178</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Unknown</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">4,903,174</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">nginx</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">2,125,160</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Oversee</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">1,953,848</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">lighttpd</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">1,532,952</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">关于这期调查报告的更详细信息请看下面链接：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://survey.netcraft.com/Reports/200806/"></a></span><span style="font-size: 10pt; color: #5c81a7; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://survey.netcraft.com/Reports/200806/" target="_blank"><span style="color: black; mso-bidi-font-size: 12.0pt;">http://survey.netcraft.com/Reports/200806/</span></a></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">下图是最近几个月使用</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> lighttpd </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的网站数比较</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><br />
</span><a name="N100C8"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">图</span></span></strong></a><span style="mso-bookmark: N100C8;"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 1. </span></span></strong></span><span style="mso-bookmark: N100C8;"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">最近几个月使用</span></span></strong></span><span style="mso-bookmark: N100C8;"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span></span></strong></span><span style="mso-bookmark: N100C8;"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和</span></span></strong></span><span style="mso-bookmark: N100C8;"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> lighttpd </span></span></strong></span><span style="mso-bookmark: N100C8;"><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的网站数比较</span></span></strong></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N100D5"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">使用</span></span></a><span style="mso-bookmark: N100D5;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span></span></span><span style="mso-bookmark: N100D5;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">前必须了解的事项</span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<ol style="margin-top: 0cm;" type="1">
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; text-align: left; mso-pagination: widow-orphan; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">目前官方</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">并不支持</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Windows</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，您只能在包括</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Linux</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">UNIX</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">BSD </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">系统下安装和使用；</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; text-align: left; mso-pagination: widow-orphan; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">本身只是一个</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和反向代理服务器，它无法像</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Apache </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">一样通过安装各种模块来支持不同的页面脚本，例如</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> PHP</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">CGI </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">等；</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; text-align: left; mso-pagination: widow-orphan; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">支持简单的负载均衡和容错；</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 0pt; color: black; text-align: left; mso-pagination: widow-orphan; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt;"><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">支持作为基本</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务器的功能，例如日志、压缩、</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Byte ranges</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Chunked responses</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">SSL</span><span style="font-size: 10pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、虚拟主机等等，应有尽有。</span><span style="font-size: 10pt; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></li>
</ol>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N100EC"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">在</span></span></a><span style="mso-bookmark: N100EC;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Linux </span></span></span><span style="mso-bookmark: N100EC;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">下安装</span></span></span><span style="mso-bookmark: N100EC;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">为了确保能在</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">中使用正则表达式进行更灵活的配置，安装之前需要确定系统是否安装有</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> PCRE</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">（</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Perl Compatible Regular Expressions</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">）包。您可以到</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"></a></span><span style="font-size: 10pt; color: #5c81a7; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/" target="_blank"><span style="color: black; mso-bidi-font-size: 12.0pt;">ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/</span></a></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">下载最新的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> PCRE </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">源码包，使用下面命令下载编译和安装</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> PCRE </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">包：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># wget <a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz" target="_blank"><span style="color: black;">ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># tar zxvf pcre-7.7.tar.gz</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># cd pcre-7.7</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># ./configure</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># make</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># make install</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">接下来安装</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">一般有两个版本，分别是稳定版和开发版，您可以根据您的目的来选择这两个版本的其中一个，下面是把</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">安装到</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> /opt/nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">目录下的详细步骤：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># wget <a href="http://sysoev.ru/nginx/nginx-0.6.31.tar.gz" target="_blank"><span style="color: black;">http://sysoev.ru/nginx/nginx-0.6.31.tar.gz</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># tar zxvf nginx-0.6.31.tar.gz</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># cd nginx-0.6.31</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># ./configure &#8211;with-http_stub_status_module –prefix=/opt/nginx</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># make</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"># make install</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">其中参数</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">&#8211;with-http_stub_status_module</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">是为了启用</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> NginxStatus </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">功能，用来监控</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的当前状态。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">安装成功后</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> /opt/nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">目录下有四个子目录分别是：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">conf</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">html</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">logs</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">sbin </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。其中</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的配置文件存放于</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> conf/nginx.conf</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">只有一个程序文件位于</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> sbin </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">目录下的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">文件。确保系统的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 80 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">端口没被其他程序占用，运行</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> sbin/nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">命令来启动</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，打开浏览器访问此机器的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> IP</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，如果浏览器出现</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Welcome to nginx! </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">则表示</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">已经安装并运行成功。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N1010F"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">常用的</span></span></a><span style="mso-bookmark: N1010F;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span></span></span><span style="mso-bookmark: N1010F;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">参数和控制</span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N10116"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial;">程序运行参数</span></span></strong></a><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">安装后只有一个程序文件，本身并不提供各种管理程序，它是使用参数和系统信号机制对</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">进程本身进行控制的。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的参数包括有如下几个：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">-c</span></strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">&lt;path_to_config&gt;</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">：使用指定的配置文件而不是</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> conf </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">目录下的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> nginx.conf </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">-t</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">：测试配置文件是否正确，在运行时需要重新加载配置的时候，此命令非常重要，用来检测所修改的配置文件是否有语法错误。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">-v</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">：显示</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">版本号。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">-V</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">：显示</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的版本号以及编译环境信息以及编译时的参数。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">例如我们要测试某个配置文件是否书写正确，我们可以使用以下命令</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">sbin/nginx – t – c conf/nginx2.conf</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N1013E"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial;">通过信号对</span></span></strong></a><span style="mso-bookmark: N1013E;"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: Arial; mso-font-kerning: 0pt;" lang="EN-US"> Nginx </span></span></strong></span><span style="mso-bookmark: N1013E;"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial;">进行控制</span></span></strong></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">支持下表中的信号：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">信号名</span></strong><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">作用描述</span></strong><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">TERM, INT</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">快速关闭程序，中止当前正在处理的请求</span><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">QUIT</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">处理完当前请求后，关闭程序</span><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">HUP</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">重新加载配置，并开启新的工作进程，关闭就的进程，此操作不会中断请求</span><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">USR1</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">重新打开日志文件，用于切换日志，例如每天生成一个新的日志文件</span><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">USR2</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">平滑升级可执行程序</span><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">WINCH</span></p>
</td>
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">从容关闭工作进程</span><span style="font-size: 9pt; color: #333333; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">有两种方式来通过这些信号去控制</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，第一是通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> logs </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">目录下的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> nginx.pid </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">查看当前运行的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的进程</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> ID</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">kill – XXX &lt;pid&gt;</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">来控制</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，其中</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> XXX </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">就是上表中列出的信号名。如果您的系统中只有一个</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">进程，那您也可以通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">killall</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">命令来完成，例如运行</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">killall – s HUP nginx</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">来让</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">重新加载配置。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N101A4"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">配置</span></span></a><span style="mso-bookmark: N101A4;"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx</span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">先来看一个实际的配置文件：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>user<span style="mso-spacerun: yes;">  </span>nobody;# </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">工作进程的属主<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>worker_processes<span style="mso-spacerun: yes;">  </span>4;# </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">工作进程数，一般与<span lang="EN-US"> CPU </span>核数等同<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>#error_log<span style="mso-spacerun: yes;">  </span>logs/error.log; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>#error_log<span style="mso-spacerun: yes;">  </span>logs/error.log<span style="mso-spacerun: yes;">  </span>notice; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>#error_log<span style="mso-spacerun: yes;">  </span>logs/error.log<span style="mso-spacerun: yes;">  </span>info; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>#pid<span style="mso-spacerun: yes;">        </span>logs/nginx.pid; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>events { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>use epoll;#Linux </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">下性能最好的<span lang="EN-US"> event </span>模式<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>worker_connections<span style="mso-spacerun: yes;">  </span>2048;# </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">每个工作进程允许最大的同时连接数<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>http { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>include<span style="mso-spacerun: yes;">       </span>mime.types; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>default_type<span style="mso-spacerun: yes;">  </span>application/octet-stream; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>#log_format<span style="mso-spacerun: yes;">  </span>main<span style="mso-spacerun: yes;">  </span>&#8216;$remote_addr &#8211; $remote_user [$time_local] $request &#8216; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>#<span style="mso-spacerun: yes;">                  </span>&#8216;&#8221;$status&#8221; $body_bytes_sent &#8220;$http_referer&#8221; &#8216; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>#<span style="mso-spacerun: yes;">                  </span>&#8216;&#8221;$http_user_agent&#8221; &#8220;$http_x_forwarded_for&#8221;&#8216;; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>#access_log<span style="mso-spacerun: yes;">  </span>off; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>access_log<span style="mso-spacerun: yes;">  </span>logs/access.log;# </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">日志文件名<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>sendfile<span style="mso-spacerun: yes;">        </span>on; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>#tcp_nopush<span style="mso-spacerun: yes;">     </span>on; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>tcp_nodelay<span style="mso-spacerun: yes;">     </span>on; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>keepalive_timeout<span style="mso-spacerun: yes;">  </span>65; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>include <span style="mso-tab-count: 1;">   </span><span style="mso-spacerun: yes;"> </span>gzip.conf; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span># </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">集群中的所有后台服务器的配置信息<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>upstream tomcats { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>server 192.168.0.11:8080 weight=10; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>server 192.168.0.11:8081 weight=10; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>server 192.168.0.12:8080 weight=10; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>server 192.168.0.12:8081 weight=10; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>server 192.168.0.13:8080 weight=10; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>server 192.168.0.13:8081 weight=10; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>server { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>listen<span style="mso-spacerun: yes;">       </span>80;#HTTP </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">的端口<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>server_name<span style="mso-spacerun: yes;">  </span>localhost; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">   </span><span style="mso-spacerun: yes;">     </span>charset utf-8; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>#access_log<span style="mso-spacerun: yes;">  </span>logs/host.access.log<span style="mso-spacerun: yes;">  </span>main; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>location ~ ^/NginxStatus/ { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;">    </span>stub_status on; #Nginx </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">状态监控配置<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;">    </span>access_log off; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>location ~ ^/(WEB-INF)/ { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;">    </span>deny all; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>location ~ \.(htm|html|asp|php|gif|jpg|jpeg|png|bmp|ico|rar|css|js|</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">             </span>root /opt/webapp; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;">    </span>expires 24h; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>location / { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;">    </span>proxy_pass <a href="http://tomcats;/" target="_blank"><span style="color: black;">http://tomcats;#</span></a> </span><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;">反向代理<span lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;">    </span>include proxy.conf; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>error_page 404 /html/404.html; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span># redirect server error pages to the static page /50x.html </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span># </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 1;">        </span><span style="mso-spacerun: yes;"> </span>error_page 502 503 /html/502.html; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>error_page 500 504 /50x.html; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>location = /50x.html { </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">            </span>root<span style="mso-spacerun: yes;">   </span>html; </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">        </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>} </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>} </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N101B2"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: Arial; mso-font-kerning: 0pt;" lang="EN-US">Nginx </span></span></strong></a><span style="mso-bookmark: N101B2;"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial;">监控</span></span></strong></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">上面是一个实际网站的配置实例，其中灰色文字为配置说明。上述配置中，首先我们定义了一个</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> location ~ ^/NginxStatus/</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，这样通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://localhost/NginxStatus/" target="_blank"><span style="color: black; mso-bidi-font-size: 12.0pt;">http://localhost/NginxStatus/</span></a></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">就可以监控到</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的运行信息，显示的内容如下：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Active connections: 70 </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">server accepts handled requests</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;"> </span>14553819 14553819 19239266 </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Reading: 0 Writing: 3 Waiting: 67 </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">NginxStatus </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">显示的内容意思如下：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">active connections – </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">当前</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">正处理的活动连接数。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">server accepts handled requests &#8212; </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">总共处理了</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 14553819 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">个连接</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> , </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">成功创建</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 14553819 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">次握手</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> ( </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">证明中间没有失败的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> ), </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">总共处理了</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 19239266 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">个请求</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> ( </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">平均每次握手处理了</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 1.3 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">个数据请求</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> )</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">reading &#8212; nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">读取到客户端的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Header </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">信息数。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">writing &#8212; nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">返回给客户端的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Header </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">信息数。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">waiting &#8212; </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">开启</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> keep-alive </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的情况下，这个值等于</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> active &#8211; (reading + writing)</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，意思就是</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">已经处理完正在等候下一次请求指令的驻留连接。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N101D4"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial;">静态文件处理</span></span></strong></a><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">通过正则表达式，我们可让</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">识别出各种静态文件，例如</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> images </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">路径下的所有请求可以写为：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">location ~ ^/images/ {</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>root /opt/webapp/images;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">而下面的配置则定义了几种文件类型的请求处理方式。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|css|js|txt)$ {</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>root /opt/webapp;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>expires 24h;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">对于例如图片、静态</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTML </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">文件、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">js </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">脚本文件和</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> css </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">样式文件等，我们希望</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">直接处理并返回给浏览器，这样可以大大的加快网页浏览时的速度。因此对于这类文件我们需要通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> root </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">指令来指定文件的存放路径，同时因为这类文件并不常修改，通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">指令来控制其在浏览器的缓存，以减少不必要的请求。</span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">指令可以控制</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">应答中的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">“ Expires ”</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">“ Cache-Control ”</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的头标（起到控制页面缓存的作用）。您可以使用例如以下的格式来书写</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Expires</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires 1 January, 1970, 00:00:01 GMT;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires 60s;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires 30m;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires 24h;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires 1d;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires max;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">expires off;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="N101F7"><strong><span style="text-decoration: underline;"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial;">动态页面请求处理</span></span></strong></a><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">本身并不支持现在流行的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> JSP</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">ASP</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">PHP</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">PERL </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">等动态页面，但是它可以通过反向代理将请求发送到后端的服务器，例如</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Tomcat</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Apache</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">IIS </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">等来完成动态页面的请求处理。前面的配置示例中，我们首先定义了由</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">直接处理的一些静态文件请求后，其他所有的请求通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> proxy_pass </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">指令传送给后端的服务器（在上述例子中是</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Tomcat</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">）。最简单的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">proxy_pass</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">用法如下：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">location / {</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>proxy_pass<span style="mso-spacerun: yes;">        </span><a href="http://localhost:8080;" target="_blank"><span style="color: black;">http://localhost:8080;</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>proxy_set_header<span style="mso-spacerun: yes;">  </span>X-Real-IP<span style="mso-spacerun: yes;">  </span>$remote_addr;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">这里我们没有使用到集群，而是将请求直接送到运行在</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 8080 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">端口的</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Tomcat </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务上来完成类似</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> JSP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Servlet </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的请求处理。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">当页面的访问量非常大的时候，往往需要多个应用服务器来共同承担动态页面的执行操作，这时我们就需要使用集群的架构。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">通过</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 12pt; color: black; font-family: NSimsun; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">upstream</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">指令来定义一个服务器的集群，最前面那个完整的例子中我们定义了一个名为</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> tomcats </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的集群，这个集群中包括了三台服务器共</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> 6 </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">个</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Tomcat </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务。而</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> proxy_pass </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">指令的写法变成了：</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<table class="MsoNormalTable" style="width: 100%; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">location / {</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>proxy_pass<span style="mso-spacerun: yes;">    </span><span style="mso-spacerun: yes;">    </span><a href="http://tomcats;/" target="_blank"><span style="color: black;">http://tomcats;</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-spacerun: yes;">    </span>proxy_set_header<span style="mso-spacerun: yes;">  </span>X-Real-IP<span style="mso-spacerun: yes;">  </span>$remote_addr;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left"><span style="font-size: 12pt; color: #333333; font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><span style="mso-tab-count: 3;">                       </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">在</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的集群配置中，</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">使用最简单的平均分配规则给集群中的每个节点分配请求。一旦某个节点失效时，或者重新起效时，</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">都会非常及时的处理状态的变化，以保证不会影响到用户的访问。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="5"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">总结</span></span></a><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">尽管整个程序包只有五百多</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> K</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">，但麻雀虽小、五脏俱全。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">官方提供的各种功能模块应有尽有，结合这些模块可以完整各种各样的配置要求，例如：压缩、防盗链、集群、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">FastCGI</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">、流媒体服务器、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">Memcached </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">支持、</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">URL </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">重写等等，更关键的是</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">拥有</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Apache </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">和其他</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务器无法比拟的高性能。您甚至可以在不改变原有网站的架构上，通过在前端引入</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">来提升网站的访问速度。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">本文只是简单介绍了</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的安装以及常见的基本的配置和使用，更多关于</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的信息请阅读文章后面的参考资源。在这里要非常感谢我的朋友</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US">——</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">陈磊（</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="mailto:chanix@msn.com"><span style="color: black; mso-bidi-font-size: 12.0pt;">chanix@msn.com</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">），他一直在做</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">的中文</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> WIKI</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">（</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://wiki.codemongers.com/NginxChs"></a></span><span style="font-size: 10pt; color: #5c81a7; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://wiki.codemongers.com/NginxChs" target="_blank"><span style="color: black; mso-bidi-font-size: 12.0pt;">http://wiki.codemongers.com/NginxChs</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">），同时也是他介绍给我这么好的一款软件。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">如果您的网站是运行在</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Linux </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">下，如果您并没有使用一些非常复杂的而且确定</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">无法完成的功能，那您应该试试</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> Nginx </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><a name="resources"><span style="text-decoration: underline;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">参考资料</span></span></a><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">学习</span></strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><br style="mso-special-character: line-break;" /><br style="mso-special-character: line-break;" /></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">查阅</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://www.nginx.net/"><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;">Nginx </span><span style="color: #5c81a7; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;" lang="EN-US"><span lang="EN-US">英文站点</span></span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">查阅</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://wiki.codemongers.com/NginxChs"><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;">Nginx </span><span style="color: #5c81a7; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;" lang="EN-US"><span lang="EN-US">中文</span></span><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;"> WIKI</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">查阅</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://wiki.codemongers.com/Main"><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;">Nginx </span><span style="color: #5c81a7; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;" lang="EN-US"><span lang="EN-US">英文</span></span><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;"> WIKI</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">另外一个轻量级</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> HTTP </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">服务器</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://www.lighttpd.net/"><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;">lighttpd</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><br />
</span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">获得产品和技术</span></strong><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><br style="mso-special-character: line-break;" /><br style="mso-special-character: line-break;" /></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; text-indent: -18pt; text-align: left; mso-pagination: widow-orphan; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt;" align="left"><span style="font-size: 10pt; color: black; font-family: Symbol; mso-fareast-font-family: Symbol; mso-font-kerning: 0pt; mso-bidi-font-family: Symbol;" lang="EN-US"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">                                 </span></span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">下载</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"><a href="http://sysoev.ru/nginx/nginx-0.6.31.tar.gz"><span style="color: #5c81a7; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;" lang="EN-US"><span lang="EN-US">最新版本的</span></span><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;"> Nginx</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体;">。</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体;" lang="EN-US"></span></p>
<p><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">下载</span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"> </span><span style="font-size: 10pt; color: black; font-family: Verdana; mso-fareast-font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"><a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"><span style="color: #5c81a7; mso-bidi-font-size: 12.0pt;">PCRE</span></a></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/109.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>高可用性、负载均衡的mysql集群解决方案</title>
		<link>http://www.evanjiang.net.cn/archives/99.html</link>
		<comments>http://www.evanjiang.net.cn/archives/99.html#comments</comments>
		<pubDate>Wed, 17 Dec 2008 13:56:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[负载均衡]]></category>
		<category><![CDATA[负载均衡 mysql 集群]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=99</guid>
		<description><![CDATA[<p class="p0">一、mysql的市场占有率</p>
<p class="p0">二、mysql为什么受到如此的欢迎</p>
<p class="p0">三、mysql数据库系统的优缺点</p>
<p class="p0">四、网络服务器的需求</p>
<p class="p0">五、什么是mysql的集群</p>
<p class="p0">六、什么是负载均衡</p>
<p class="p0">七、mysql集群部署和实现方法</p>
<p class="p0">八、负载均衡的配置和测试</p>
<p class="p0">九、Mysql集群系统的测试（测试方案+测试脚本+测试结果分析）</p>
<p class="p0">
<p class="p0">
<p class="p0">l mysql的市场占有率</p>
<p class="p0">
<p class="p0">MySQL是世界上最流行的开源数据库，已有1100多万的击活安装，每天超过五万的下</p>
<p class="p0">载。MySQL为全球开发者、DBA和IT管理者在可靠性、性能、易用性方面提供了选</p>
<p class="p0">择。</p>
<p class="p0">
<p class="p0">第三方市场调查机构Evans Data Corporation调查显示，过去两年内在开发者使用</p>
<p class="p0">的所有数据库中，MySQL已经拥有了25%的市场占有率。开源已经成为当今IT结构中</p>
<p class="p0">不可或缺的重要部分，而且开源的市场占有率将继续增加。如下图所示：</p>
<p class="p0"></p>

<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">l mysql为什么受到如此的欢迎</p>
<p class="p0">
<p class="p0">Sun公司今天1月份花了10亿美元将mysql收购，准备进军开源和数据库。</p>
<p class="p0">




<p class="p0">数据库系统</p>


<p class="p0">Oracle</p>


<p class="p0">SQL Server</p>


<p class="p0">MySQL</p>


<p class="p0">DB2</p>




<p class="p0">是否免费</p>


<p class="p0">收费</p>


<p class="p0">收费</p>


<p class="p0">免费</p>


<p class="p0">收费</p>




<p class="p0">存储过程</p>


<p class="p0">支持</p>


<p class="p0">支持</p>


<p class="p0">支持</p>


<p class="p0">支持</p>




<p class="p0">视图</p>


<p class="p0">支持</p>


<p class="p0">支持</p>


<p class="p0">支持</p>


<p class="p0">支持</p>




<p class="p0">快照</p>


<p class="p0">支持</p>


<p [...]]]></description>
			<content:encoded><![CDATA[<p class="p0"><span>一、</span><span>mysql<span style="font-family: 宋体;">的市场占有率</span></span></p>
<p class="p0"><span>二、</span><span>mysql<span style="font-family: 宋体;">为什么受到如此的欢迎</span></span></p>
<p class="p0"><span>三、</span><span>mysql<span style="font-family: 宋体;">数据库系统的优缺点</span></span></p>
<p class="p0"><span>四、</span><span><span style="font-family: 宋体;">网络服务器的需求</span></span></p>
<p class="p0"><span>五、</span><span><span style="font-family: 宋体;">什么是mysql的集群</span></span></p>
<p class="p0"><span>六、</span><span><span style="font-family: 宋体;">什么是负载均衡</span></span></p>
<p class="p0"><span>七、</span><span>mysql<span style="font-family: 宋体;">集群部署和实现方法</span></span></p>
<p class="p0"><span>八、</span><span><span style="font-family: 宋体;">负载均衡的配置和测试</span></span></p>
<p class="p0"><span>九、</span><span>Mysql<span style="font-family: 宋体;">集群系统的测试（测试方案+测试脚本+测试结果分析）</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span>l </span><span>mysql<span style="font-family: 宋体;">的市场占有率</span></span></p>
<p class="p0">
<p class="p0"><span>MySQL<span style="font-family: 宋体;">是世界上最流行的开源数据库，已有1100多万的击活安装，每天超过五万的下</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">载。MySQL为全球开发者、DBA和IT管理者在可靠性、性能、易用性方面提供了选</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">择。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">第三方市场调查机构Evans Data Corporation调查显示，过去两年内在开发者使用</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">的所有数据库中，MySQL已经拥有了25%的市场占有率。开源已经成为当今IT结构中</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">不可或缺的重要部分，而且开源的市场占有率将继续增加。如下图所示：</span></span></p>
<p class="p0"><span id="more-99"></span></p>
<div><img src="http://blogimg.chinaunix.net/blog/upfile2/081217203312.gif" border="0" alt="" /></div>
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0"><span>l </span><span>mysql<span style="font-family: 宋体;">为什么受到如此的欢迎</span></span></p>
<p class="p0">
<p class="p0"><span>Sun<span style="font-family: 宋体;">公司今天1月份花了10亿美元将mysql收购，准备进军开源和数据库。</span></span></p>
<p class="p0">
<table border="0">
<tbody>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">数据库系统</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span>Oracle</span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span>SQL Server</span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span>MySQL</span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span>DB2</span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">是否免费</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">收费</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">收费</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">免费</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">收费</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">存储过程</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">视图</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">快照</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">不支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">触发器</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">支持</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">安全</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">强</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">中</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">中</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">强</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">复杂查询</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">强</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">中</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">弱</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">中</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">索引</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">丰富</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">一般</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">弱</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">中</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">数据类型</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">多</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">多</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">多</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">多</span></span></p>
</td>
</tr>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">事务处理</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">强</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">强</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">弱</span></span></p>
</td>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">中</span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="p0">
<p class="p0">
<p class="p0"><span>l </span><span>mysql<span style="font-family: 宋体;">数据库系统的优缺点</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">每个系统都有自身的不足和发展历程，mysql也一样。</span></span></p>
<p class="p0">
<table border="0">
<tbody>
<tr>
<td width="284" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">优点</span></span></p>
</td>
<td width="284" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">缺点</span></span></p>
</td>
</tr>
<tr>
<td width="284" valign="top">
<p class="p0"><span>1. </span><span><span style="font-family: 宋体;">源码公开，免费</span></span></p>
<p class="p0"><span>2. </span><span><span style="font-family: 宋体;">跨平台</span></span></p>
<p class="p0"><span>3. </span><span><span style="font-family: 宋体;">为多种开发语言和包提供了API</span></span></p>
<p class="p0"><span>4. </span><span><span style="font-family: 宋体;">支持多线程</span></span></p>
<p class="p0"><span>5. </span><span><span style="font-family: 宋体;">小巧、灵活、速度较快</span></span></p>
<p class="p0"><span>6. </span><span><span style="font-family: 宋体;">支持各种字符集</span></span></p>
<p class="p0"><span>7. </span><span><span style="font-family: 宋体;">提供各种连接、优化的工具包</span></span></p>
<p class="p0">
</td>
<td width="284" valign="top">
<p class="p0"><span>1. </span><span><span style="font-family: 宋体;">不完善，很多数据库特性不支持</span></span></p>
<p class="p0"><span>2. </span><span><span style="font-family: 宋体;">只适合中小型应用，对于大型应用，可以跟其他数据库互补；</span></span></p>
<p class="p0"><span>3. </span><span><span style="font-family: 宋体;">数据库系统数据量只能达到千万级别；</span></span></p>
<p class="p0">
</td>
</tr>
</tbody>
</table>
<p class="p0">
<p class="p0"><span>l </span><span><span style="font-family: 宋体;">网络服务的需求</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">随着Internet的飞速发展和对我们生活的深入影响，越来越多的个人在互联网上购物、娱</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">乐、休闲、与人沟通、获取信息；越来越多的企业把他们与顾客和业务伙伴之间的联络</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">搬到互联网上，通过网络来完成交易，建立与客户之间的联系。互联网的用户数和网络</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">流量正以几何级数增长，这对网络服务的可伸缩性提出很高的要求。例如，比较热门的Web</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">站点会因为被访问次数急剧增长而不能及时处理用户的请求，导致用户进行长时间的等待</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">，大大降低了服务质量。另外，随着电子商务等关键性应用在网上运行，任何例外的服务</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">中断都将造成不可估量的损失，服务的高可用性也越来越重要。所以，对用硬件和软件方</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">法实现高可伸缩、高可用网络服务的需求不断增长，这种需求可以归结以下几点：</span></span></p>
<p class="p0">
<p class="p0"><span>1) </span><span><span style="font-family: 宋体;">可伸缩性（Scalability），当服务的负载增长时，系统能被扩展来满足需求，且不降</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">低服务质量。</span></span></p>
<p class="p0"><span>2) </span><span><span style="font-family: 宋体;">高可用性（Availability），尽管部分硬件和软件会发生故障，整个系统的服务必须是</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">每天24小时每星期7天可用的。</span></span></p>
<p class="p0"><span>3) </span><span><span style="font-family: 宋体;">可管理性（Manageability），整个系统可能在物理上很大，但应该容易管理。</span></span></p>
<p class="p0"><span>4) </span><span><span style="font-family: 宋体;">价格有效性（Cost-effectiveness），整个系统实现是经济的、易支付的。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">单服务器显然不能处理不断增长的负载。这种服务器升级方法有下列不足：一是升级过</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">程繁琐，机器切换会使服务暂时中断，并造成原有计算资源的浪费；二是越往高端的服务</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">器，所花费的代价越大；三是一旦该服务器或应用软件失效，会导致整个服务的中断。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">通过高性能网络或局域网互联的服务器集群正成为实现高可伸缩的、高可用网络服务的有</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">效结构。这种松耦合结构比紧耦合的多处理器系统具有更好的伸缩性和性能价格比，组成</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">集群的PC服务器或RISC服务器和标准网络设备因为大规模生产，价格低，具有很高的性能</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">价格比。但是，这里有很多挑战性的工作，如何在集群系统实现并行网络服务，它对外是</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">透明的，它具有良好的可伸缩性和可用性。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">针对上述需求，我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法，并在</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">Linux内核中实现了这些方法，将一组服务器构成一个实现可伸缩的、高可用网络服务的服</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">务器集群，我们称之为Linux虚拟服务器（Linux Virtual Server）。在LVS集群中，使得</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">服务器集群的结构对客户是透明的，客户访问集群提供的网络服务就像访问一台高性能、</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">高可用的服务器一样。客户程序不受服务器集群的影响不需作任何修改。系统的伸缩性通</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">过在服务机群中透明地加入和删除一个节点来达到，通过检测节点或服务进程故障和正</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">确地重置系统达到高可用性。</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span>l </span><span><span style="font-family: 宋体;">什么是mysql集群</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">分为同步集群和异步集群。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">同步集群（mysql cluster）</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">结构：</span></span><span><span style="font-family: 宋体;">（data + sql + mgm节点）</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">特点：</span></span></p>
<p class="p0"><span>1) </span><span><span style="font-family: 宋体;">内存级别的，对硬件要求较低，但是对内存要求较大。换算比例为：1：1.1；</span></span></p>
<p class="p0"><span>2) </span><span><span style="font-family: 宋体;">数据同时放在几台服务器上，冗余较好；</span></span></p>
<p class="p0"><span>3) </span><span><span style="font-family: 宋体;">速度一般；</span></span></p>
<p class="p0"><span>4) </span><span><span style="font-family: 宋体;">建表需要声明为engine=ndbcluster</span></span></p>
<p class="p0"><span>5) </span><span><span style="font-family: 宋体;">扩展性强；</span></span></p>
<p class="p0"><span>6) </span><span><span style="font-family: 宋体;">可以实现高可用性和负载均衡，实现对大型应用的支持；</span></span></p>
<p class="p0"><span>7) </span><span><span style="font-family: 宋体;">必须是特定的mysql版本，如：已经编译好的max版本；</span></span></p>
<p class="p0"><span> <img src='http://www.evanjiang.net.cn/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </span><span><span style="font-family: 宋体;">配置和管理方便，不会丢失数据；</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">异步集群（mysql replication）</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">结构：</span></span><span><span style="font-family: 宋体;">（master + slave）</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">特点：</span></span></p>
<p class="p0"><span>1) </span><span><span style="font-family: 宋体;">主从数据库异步数据；</span></span></p>
<p class="p0"><span>2) </span><span><span style="font-family: 宋体;">数据放在几台服务器上，冗余一般；</span></span></p>
<p class="p0"><span>3) </span><span><span style="font-family: 宋体;">速度较快；</span></span></p>
<p class="p0"><span>4) </span><span><span style="font-family: 宋体;">扩展性差；</span></span></p>
<p class="p0"><span>5) </span><span><span style="font-family: 宋体;">无法实现高可用性和负载均衡（只能在程序级别实现读写分离，减轻对主数据库的压力）；</span></span></p>
<p class="p0"><span>6) </span><span><span style="font-family: 宋体;">配置和管理较差，可能会丢失数据；</span></span></p>
<p class="p0">
<p class="p0"><span>l </span><span><span style="font-family: 宋体;">什么是负载均衡</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">通过director，将用户的请求分发到real server服务器上，然后返回给用户。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">负载均衡部署灵活、能够满足各种需求。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">实现方式：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">硬件：BIG/IP、Cisco、IBM（昂贵）</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">软件：LVS（免费）</span></span></p>
<p class="p0"><span>LVS<span style="font-family: 宋体;">系统将用户的请求的数据包在数据层和网络层进行了封装和转发，由三种方式满足各种需求。</span></span></p>
<p class="p0">
<p class="p0"><span>1) </span><span>DR<span style="font-family: 宋体;">：直接路由</span></span></p>
<p class="p0"><span>2) </span><span>Tuning<span style="font-family: 宋体;">：tcp/ip隧道</span></span></p>
<p class="p0"><span>3) </span><span>NAT<span style="font-family: 宋体;">：网络地址转换</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">需求：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">免费的软件包</span></span></p>
<p class="p0"><span>1) </span><span>2<span style="font-family: 宋体;">台低端的director（active和standby）</span></span></p>
<p class="p0"><span>2) </span><span><span style="font-family: 宋体;">心跳线：连接2台director，检测活动情况</span></span></p>
<p class="p0"><span>3) </span><span>2<span style="font-family: 宋体;">台以上的real servers</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">通用结构：</span></span></p>
<div><img src="http://blogimg.chinaunix.net/blog/upfile2/081217203336.jpg" border="0" alt="" width="500" /></div>
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">有兴趣的可以分别研究上面的三种LVS结构。</span></span></p>
<p class="p0">
<p class="p0"><span>l </span><span>mysql<span style="font-family: 宋体;">集群部署和实现方法</span></span></p>
<p class="p0">
<p class="p0"><span>1) </span><span><span style="font-family: 宋体;">假设现在有4台服务器（mysql官方推荐的最小配置）</span></span></p>
<p class="p0">
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<table border="0">
<tbody>
<tr>
<td width="113" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">服务器</span></span></p>
</td>
<td width="205" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">开启的服务</span></span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">角色</span></span></p>
</td>
</tr>
<tr>
<td rowspan="3" width="113" valign="top">
<p class="p0"><span>192.168.131.164</span></p>
<p class="p0"><span>Ndb1</span></p>
</td>
<td width="205" valign="top">
<p class="p0"><span>Mysqld</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span>Mysql API</span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Ndb_mgmd</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">管理节点(master)</span></span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Heartbeat</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span>Director(master)</span></p>
</td>
</tr>
<tr>
<td rowspan="3" width="113" valign="top">
<p class="p0"><span>192.168.131.26</span></p>
<p class="p0"><span>Ndb2</span></p>
</td>
<td width="205" valign="top">
<p class="p0"><span>Mysqld</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span>Mysql API</span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Ndb_mgmd</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">管理节点(backup)</span></span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Heartbeat</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span>Director(standby)</span></p>
</td>
</tr>
<tr>
<td rowspan="3" width="113" valign="top">
<p class="p0"><span>192.168.131.77</span></p>
<p class="p0"><span>Sql1</span></p>
</td>
<td width="205" valign="top">
<p class="p0"><span>Mysqld</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span>Mysql API<span style="font-family: 宋体;">（realserver）</span></span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Ndbd</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">存储节点</span></span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Arptables</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">访问路由</span></span></p>
</td>
</tr>
<tr>
<td rowspan="3" width="113" valign="top">
<p class="p0"><span>192.168.131.101</span></p>
<p class="p0"><span>Sql2</span></p>
</td>
<td width="205" valign="top">
<p class="p0"><span>Mysqld</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span>Mysql API<span style="font-family: 宋体;">（realserver）</span></span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Ndbd</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">存储节点</span></span></p>
</td>
</tr>
<tr>
<td width="205" valign="top">
<p class="p0"><span>Arptables</span></p>
</td>
<td width="246" valign="top">
<p class="p0"><span><span style="font-family: 宋体;">访问路由</span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="p0">
<p class="p0"><span>2）</span><span><span style="font-family: 宋体;">服务器安装配置和网络连接</span></span></p>
<p class="p0"><span>(<span style="font-family: 宋体;">以下为所有服务器各操作一遍，共4遍)</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">安装：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">将4台服务器安装CentOS 5.2，选择下面的包：</span></span></p>
<p class="p0"><span>Clustering</span></p>
<p class="p0"><span>Storage Clustering</span></p>
<p class="p0"><span>mysql<span style="font-family: 宋体;">不需要安装</span></span><span><span style="font-family: 宋体;">，但perl-mysql-xxx的所有包需要安装</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">开发工具包和类库</span></span></p>
<p class="p0"><span>sshd<span style="font-family: 宋体;">服务</span></span></p>
<p class="p0"><span>SElinux ==&gt;disable</span></p>
<p class="p0"><span><span style="font-family: 宋体;">语言</span></span><span><span style="font-family: 宋体;">支持</span></span><span><span style="font-family: 宋体;">包不安装，默认</span></span><span><span style="font-family: 宋体;">美国英语</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">设定主机名：</span></span></p>
<p class="p0"><span>Vi /etc/sysconfig/network</span></p>
<p class="p0"><span>Hostname=xxx</span></p>
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">检查主机名：</span></span></p>
<p class="p0"><span>Uname -a</span></p>
<p class="p0"><span><span style="font-family: 宋体;">必须和上表中的一一对应。否则有问题。</span></span></p>
<p class="p0">
<p class="p0"><span>Vi /etc/hosts</span></p>
<p class="p0"><span>Ndb1</span><span> </span><span>192.168.131.164</span></p>
<p class="p0"><span>Ndb2</span><span> </span><span>192.168.131.26</span></p>
<p class="p0"><span>Sql1</span><span> </span><span>192.168.131.77</span></p>
<p class="p0"><span>Sql2</span><span> </span><span>192.168.131.101</span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">更新：</span></span></p>
<p class="p0"><span>#rpm &#8211;import http://dries.ulyssis.org/rpm/RPM-GPG-KEY.dries.txt</span></p>
<p class="p0"><span>#yum update -y &amp;&amp; yum -y install lynx libawt xorg-x11-deprecated-libs nx freenx arptables_jf httpd-devel</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">下载：</span></span></p>
<p class="p0"><span>Mysql cluster<span style="font-family: 宋体;">版本（我下载的5.0.67社区版本）：</span></span></p>
<p class="p0"><span>[root@ndb1 RHEL5]# ls -lh  MySQL* | awk &#8217;{print $9}&#8217;</span></p>
<p class="p0"><span>MySQL-client-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-clusterextra-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-clustermanagement-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-clusterstorage-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-clustertools-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-devel-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-server-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-shared-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-shared-compat-5.0.67-0.rhel4.i386.rpm</span></p>
<p class="p0"><span>MySQL-shared-compat-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>MySQL-test-community-5.0.67-0.rhel5.i386.rpm</span></p>
<p class="p0"><span>perl-HTML-Template-2.9-1.el5.rf.noarch.rpm</span></p>
<p class="p0"><span>[root@ndb1 RHEL5]# </span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在服务器上安装以上包，在安装的过程中如果缺少包或者库，采用：</span></span></p>
<p class="p0"><span>yum install xxxx<span style="font-family: 宋体;">自行安装。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">建立目录：</span></span></p>
<p class="p0"><span>#</span><span>mkdir /var/lib/mysql-cluster</span><span> -p</span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以下分别操作：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">安装cluster组件：</span></span></p>
<p class="p0"><span>#Rpm -Uvh MySQL-xx-xx.rpm<span style="font-family: 宋体;">，根据不同，可以少安装部分组件。根据你需要而定。</span></span></p>
<p class="p0">
<p class="p0"><span>163<span style="font-family: 宋体;">、26上，我安装了：</span></span></p>
<p class="p0"><span>[root@ndb1 RHEL5]# rpm -aq | grep MySQL</span></p>
<p class="p0"><span>MySQL-clusterstorage-community-5.0.67-0.rhel5</span></p>
<p class="p0"><span>MySQL-clustertools-community-5.0.67-0.rhel5</span></p>
<p class="p0"><span>MySQL-clustermanagement-community-5.0.67-0.rhel5</span></p>
<p class="p0"><span>MySQL-shared-community-5.0.67-0.rhel5</span></p>
<p class="p0"><span>perl-DBD-MySQL-3.0007-1.fc6</span></p>
<p class="p0"><span>MySQL-server-community-5.0.67-0.rhel5</span></p>
<p class="p0"><span>[root@ndb1 RHEL5]# </span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span>101<span style="font-family: 宋体;">、77上，我安装了：</span></span></p>
<p class="p0"><span>[root@sql1 ~]# rpm -aq | grep MySQL</span></p>
<p class="p0"><span>MySQL-clusterstorage-community-5.0.67-0.rhel4</span></p>
<p class="p0"><span>MySQL-devel-community-5.0.67-0.rhel4</span></p>
<p class="p0"><span>MySQL-server-community-5.0.67-0.rhel4</span></p>
<p class="p0"><span>MySQL-client-community-5.0.67-0.rhel4</span></p>
<p class="p0"><span>MySQL-shared-community-5.0.67-0.rhel4</span></p>
<p class="p0"><span>[root@sql1 ~]# </span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以下在ndb1（164）和ndb2（26）上操作</span></span></p>
<p class="p0"><span>[root@ndb1 ~]# vi /var/lib/mysql-cluster/config.ini </span></p>
<p class="p0"><span>[NDBD DEFAULT]</span></p>
<p class="p0"><span>NoOfReplicas=2</span></p>
<p class="p0"><span>DataMemory=800M</span></p>
<p class="p0"><span>IndexMemory=400M</span></p>
<p class="p0">
<p class="p0"><span>[MYSQLD DEFAULT]</span></p>
<p class="p0">
<p class="p0"><span>[NDB_MGMD DEFAULT]</span></p>
<p class="p0">
<p class="p0"><span>[TCP DEFAULT]</span></p>
<p class="p0">
<p class="p0"><span># Section for the cluster management node</span></p>
<p class="p0"><span>[NDB_MGMD]</span></p>
<p class="p0"><span># IP address of the management node (this system)</span></p>
<p class="p0"><span>ID=1</span></p>
<p class="p0"><span>HostName=192.168.131.164</span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span>[NDB_MGMD]</span></p>
<p class="p0"><span># IP address of the management node (this system)</span></p>
<p class="p0"><span>ID=2</span></p>
<p class="p0"><span>HostName=192.168.131.26</span></p>
<p class="p0">
<p class="p0"><span># Section for the storage nodes</span></p>
<p class="p0"><span>[NDBD]</span></p>
<p class="p0"><span># IP address of the first storage node</span></p>
<p class="p0"><span>HostName=192.168.131.77</span></p>
<p class="p0"><span>DataDir= /var/lib/mysql-cluster</span></p>
<p class="p0">
<p class="p0"><span>[NDBD]</span></p>
<p class="p0"><span># IP address of the second storage node</span></p>
<p class="p0"><span>HostName=192.168.131.101</span></p>
<p class="p0"><span>DataDir=/var/lib/mysql-cluster</span></p>
<p class="p0">
<p class="p0"><span># one [MYSQLD] per storage node</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>[MYSQLD]</span></p>
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以下在mysql API上操作（这里，我设定了7个API，以后可以随时加入）</span></span></p>
<p class="p0">
<p class="p0"><span>Mysqld API<span style="font-family: 宋体;">的配置文件：</span></span></p>
<p class="p0"><span>Vi /etc/my.cnf</span></p>
<p class="p0"><span>[root@ndb1 ~]# cat /etc/my.cnf </span></p>
<p class="p0"><span>[mysqld]</span></p>
<p class="p0"><span>ndbcluster</span></p>
<p class="p0"><span>ndb-connectstring = &#8221;host=192.168.131.164,host=192.168.131.26&#8243; </span></p>
<p class="p0">
<p class="p0"><span>[ndb_mgm]</span></p>
<p class="p0"><span>connect-string = &#8221;host=192.168.131.164,host=192.168.131.26&#8243;</span></p>
<p class="p0">
<p class="p0"><span>[ndbd]</span></p>
<p class="p0"><span>connect-string = &#8221;host=192.168.131.164,host=192.168.131.26&#8243;</span></p>
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">分别启动ndb_mgmd/ndbd/mysqld</span></span></p>
<p class="p0"><span>164/26:</span></p>
<p class="p0"><span>ndb_mgmd -f /var/lib/mysql-cluster/config.ini</span></p>
<p class="p0">
<p class="p0"><span>77/101:</span></p>
<p class="p0"><span>Ndbd &#8211;initial</span></p>
<p class="p0">
<p class="p0"><span>164/26/77/101:</span></p>
<p class="p0"><span>/etc/rc.d/init.d/mysql start</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在管理节点ndb1(164)和ndb2(26)上查看各节点的情况：</span></span></p>
<p class="p0"><span>[root@ndb1 ~]# ndb_mgm</span></p>
<p class="p0"><span>&#8211; NDB Cluster &#8211; Management Client &#8211;</span></p>
<p class="p0"><span>ndb_mgm&gt; show</span></p>
<p class="p0"><span>Connected to Management Server at: 192.168.131.164:1186</span></p>
<p class="p0"><span>Cluster Configuration</span></p>
<p class="p0"><span>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></p>
<p class="p0"><span>[ndbd(NDB)]     2 node(s)</span></p>
<p class="p0"><span>id=3    @192.168.131.77  (Version: 5.0.67, Nodegroup: 0, Master)</span></p>
<p class="p0"><span>id=4    @192.168.131.101  (Version: 5.0.67, Nodegroup: 0)</span></p>
<p class="p0">
<p class="p0"><span>[ndb_mgmd(MGM)] 2 node(s)</span></p>
<p class="p0"><span>id=1    @192.168.131.164  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=2    @192.168.131.26  (Version: 5.0.67)</span></p>
<p class="p0">
<p class="p0"><span>[mysqld(API)]   7 node(s)</span></p>
<p class="p0"><span>id=5    @192.168.131.101  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=6    @192.168.131.26  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=7    @192.168.131.164  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=8    @192.168.131.77  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=9 (not connected, accepting connect from any host)</span></p>
<p class="p0"><span>id=10 (not connected, accepting connect from any host)</span></p>
<p class="p0"><span>id=11 (not connected, accepting connect from any host)</span></p>
<p class="p0">
<p class="p0"><span>ndb_mgm&gt; </span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以上说明一切正常。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">将服务增加到开机启动服务项中：</span></span></p>
<p class="p0"><span>164/26:</span></p>
<p class="p0"><span>echo &#8217;ndb_mgmd -f /var/lib/mysql-cluster/config.ini&#8217; &gt; /etc/</span><span>rc.d/</span><span>init.d/ndb_mgmd</span><span><br />
</span><span>chmod 755 /etc/</span><span>rc.d/</span><span>init.d/ndb_mgmd</span></p>
<p class="p0">
<p class="p0"><span>77/101:</span></p>
<p class="p0"><span>Echo &#8217;ndbd&#8217; &gt; /etc/rc.d/init.d/ndbd</span></p>
<p class="p0"><span>Chmod 755 /etc/rc.d/init.d/ndbd</span></p>
<p class="p0"><span>Chkconfig &#8211;level 2345 ndbd on</span></p>
<p class="p0">
<p class="p0"><span>OK<span style="font-family: 宋体;">，到此mysql cluster 配置完成。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">强调：</span></span></p>
<p class="p0"><span>1<span style="font-family: 宋体;">）由于数据放在内存中，需要在ndb节点上加大内存的数量。按照1：1.1的比例，如果数据量达到3.6GB，需要4GB的内存。</span></span></p>
<p class="p0"><span>2<span style="font-family: 宋体;">）由于NDB和mysqld（API）都很耗费内存，所以建议将NDB放在164和26上。可能启动的时候会有警告，但是没关系的。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">查看数据和内存情况：</span></span></p>
<p class="p0"><span>77<span style="font-family: 宋体;">：</span></span></p>
<p class="p0"><span>[root@sql2 ~]# top</span></p>
<p class="p0"><span>top - 16:39:36 up  1:59,  1 user,  load average: 1.37, 0.76, 0.60</span></p>
<p class="p0"><span>Tasks:  80 total,   2 running,  78 sleeping,   0 stopped,   0 zombie</span></p>
<p class="p0"><span>Cpu(s):  4.0%us,  4.0%sy,  0.0%ni, 87.3%id,  2.9%wa,  0.2%hi,  1.5%si,  0.0%st</span></p>
<p class="p0"><span>Mem: </span><span>2075600k total,  2005868k used, </span><span> 69732k free,    68256k buffers</span></p>
<p class="p0"><span>Swap:  2031608k total,        0k used,  2031608k free,  1400812k cached</span></p>
<p class="p0">
<p class="p0"><span>PID USER    PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND </span><span>2306 mysql     25   0  119m   15m   3952 S   22  0.8         10:20.94 mysqld </span></p>
<p class="p0"><span>23791 root      15   0  1587m  484m  31m R   20  23.9        9:34.97 ndbd</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">由于77只有2GB的内存，而在config.ini中，把1.2GB的内存分配给了NDB，所以，加上mysqld用掉的，2GB的内存似乎已经所剩无几了。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">查看77上的数据大小：</span></span></p>
<p class="p0"><span>[root@sql2 ~]# cd /var/lib/mysql-cluster/ndb_4_fs/</span></p>
<p class="p0"><span>[root@sql2 ndb_4_fs]# du -lh</span></p>
<p class="p0"><span>1.3GB</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">连接API创建数据库：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">由于上面4台都做为mysqld 的API，所以创建数据库的时候，都需要创建一遍。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">以下操作在4台API上都需要操作：</span></span></p>
<p class="p0"><span># Mysql -uroot -pxxxxxxxxxxxx -A</span></p>
<p class="p0"><span>Mysql&gt; create database testdatabase;</span></p>
<p class="p0"><span>Mysql&gt; grant all on *.testdatabase to </span><span><a href="mailto:root@%27192.168.131.%%27"><span class="15">root@&#8217;192.168.131.%&#8217;</span></a></span><span> identified by &#8217;xxxxxxxxxxxxxxx&#8217;;</span></p>
<p class="p0"><span>Mysql&gt; flush privileges;</span></p>
<p class="p0"><span>Mysql&gt; create table test(int (1));</span></p>
<p class="p0"><span>Mysql&gt; insert into test(1);</span></p>
<p class="p0"><span>Mysql&gt; quit;</span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以上做完以后，可以通过任意一台API上创建表，并写数据到表中，其他数据库都会同步写入。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">分别连接每台服务器进行检查：</span></span></p>
<p class="p0"><span># Mysql -uroot -pxxxxxxxxxxxx -A</span></p>
<p class="p0"><span>Mysql&gt; use testdatabase;</span></p>
<p class="p0"><span>Mysql&gt; select * from test;</span></p>
<p class="p0"><span><span style="font-family: 宋体;">如果输出结果完全相同，表明mysql cluster已经可以正常工作了。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在2台API上设置LVS</span></span></p>
<p class="p0">
<p class="p0"><span>Mysql cluster<span style="font-family: 宋体;">做好以后，数据库分别建立同名的数据库以后，权限分配好，然后只要在一台上写入数据，其他的NDB就存储了相同的数据。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">用程序连接任意一台API写数据，如果程序中未设置API的选择和判断，只使用了其中一个API，一旦API当机，则无法写入数据，必须修改程序。即便做了API的判断和选择，因为没有实现负载均衡，服务器的性能没有充分利用。高可用性也没有达到目标。所以，我们现在在2台API之间做LVS。</span></span></p>
<p class="p0">
<p class="p0"><span>LVS<span style="font-family: 宋体;">采用 ultramonkey（</span></span><span><a href="http://www.ultramonkey.org/"><span class="15">http://www.ultramonkey.org</span></a></span><span><span style="font-family: 宋体;">）</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">首先在NDB1（164）和NDB2（26）上下载heartbeat的软件包：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">下载所有的rpm包：</span></span></p>
<p class="p0"><span>Cd /usr/local/src</span></p>
<p class="p0"><span>Mkdir heartbeat</span></p>
<p class="p0"><span>Cd heartbeat</span></p>
<p class="p0"><span>#Wget xxx.xxx.rpm</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">我下载了如下的软件包：</span></span></p>
<p class="p0"><span>[root@ndb1 heartbeat]# ls -lh *.rpm | awk &#8217;{print $9}&#8217;;</span></p>
<p class="p0"><span>arptables-noarp-addr-0.99.2-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>heartbeat-1.2.3.cvs.20050927-1.rh.el.um.4.i386.rpm</span></p>
<p class="p0"><span>heartbeat-ldirectord-1.2.3.cvs.20050927-1.rh.el.um.4.i386.rpm</span></p>
<p class="p0"><span>heartbeat-pils-1.2.3.cvs.20050927-1.rh.el.um.4.i386.rpm</span></p>
<p class="p0"><span>heartbeat-stonith-1.2.3.cvs.20050927-1.rh.el.um.4.i386.rpm</span></p>
<p class="p0"><span>ipvsadm-1.21-1.rh.el.1.um.1.i386.rpm</span></p>
<p class="p0"><span>libnet-1.1.2.1-1.rh.el.um.1.i386.rpm</span></p>
<p class="p0"><span>perl-Authen-SASL-2.08-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-Convert-ASN1-0.18-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-IO-Socket-SSL-0.96-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-ldap-0.3202-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-Mail-IMAPClient-2.2.9-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-Net-SSLeay-1.25-1.rh.el.um.1.i386.rpm</span></p>
<p class="p0"><span>perl-Parse-RecDescent-1.94-1.el5.rf.noarch.rpm</span></p>
<p class="p0"><span>perl-Parse-RecDescent-1.94-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>perl-XML-SAX-0.12-1.rh.el.um.1.noarch.rpm</span></p>
<p class="p0"><span>[root@ndb1 heartbeat]# </span></p>
<p class="p0">
<p class="p0"><span>Heartbeat<span style="font-family: 宋体;">中包含以下几部分：</span></span></p>
<p class="p0"><span>1) </span><span>Master Director<span style="font-family: 宋体;">（分发器）&#8211; MD</span></span></p>
<p class="p0"><span>2) </span><span>Backup Director<span style="font-family: 宋体;">（备份分发器）&#8211; BD</span></span></p>
<p class="p0"><span>3) </span><span>Real server <span style="font-family: 宋体;">（真实服务器，可以有2个以上）&#8211;RS</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0"><span>IP<span style="font-family: 宋体;">设置并确认：</span></span></p>
<p class="p0"><span>MD:</span></p>
<p class="p0"><span>Eth0:192.168.131.164/24/GW:192.168.131.1</span></p>
<p class="p0"><span>Eth1:10.9.30.1/24</span></p>
<p class="p0">
<p class="p0"><span>MD:</span></p>
<p class="p0"><span>Eth0:192.168.131.26/24/GW:192.168.131.1</span></p>
<p class="p0"><span>Eth1:10.9.30.2</span></p>
<p class="p0">
<p class="p0"><span>VIP:192.168.131.105/24/GW:192.168.131.1 &#8211; <span style="font-family: 宋体;">用户访问的统一虚拟IP</span></span></p>
<p class="p0">
<p class="p0"><span>RS1:192.168.131.101/24/GW:192.168.131.1</span></p>
<p class="p0"><span>RS2:192.168.131.77/24/GW:192.168.131.1</span></p>
<p class="p0"><span><span style="font-family: 宋体;">。。。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">等等</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以下操作在所有服务器上执行：</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">主机名确认：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">分别执行：</span></span></p>
<p class="p0"><span>#uname -a</span></p>
<p class="p0"><span><span style="font-family: 宋体;">主机名对应表中所列。</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在MD和BD修改IP转发：</span></span></p>
<p class="p0"><span>#vi modprobe.sh</span></p>
<p class="p0"><span>modprobe ip_vs_dh</span><span><br />
</span><span>modprobe ip_vs_ftp</span><span><br />
</span><span>modprobe ip_vs</span><span><br />
</span><span>modprobe ip_vs_lblc</span><span><br />
</span><span>modprobe ip_vs_lblcr</span><span><br />
</span><span>modprobe ip_vs_lc</span><span><br />
</span><span>modprobe ip_vs_nq</span><span><br />
</span><span>modprobe ip_vs_rr</span><span><br />
</span><span>modprobe ip_vs_sed</span><span><br />
</span><span>modprobe ip_vs_sh</span><span><br />
</span><span>modprobe ip_vs_wlc</span><span><br />
</span><span>modprobe ip_vs_wrr </span></p>
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span>#chmod 755 modprobe.sh</span></p>
<p class="p0"><span># sh modprobe.sh</span></p>
<p class="p0"><span># </span><span>vi /etc/modules</span></p>
<p class="p0"><span>ip_vs_dh</span></p>
<p class="p0"><span>ip_vs_ftp</span></p>
<p class="p0"><span>ip_vs</span></p>
<p class="p0"><span>ip_vs_lblc</span></p>
<p class="p0"><span>ip_vs_lblcr</span></p>
<p class="p0"><span>ip_vs_lc</span></p>
<p class="p0"><span>ip_vs_nq</span></p>
<p class="p0"><span>ip_vs_rr</span></p>
<p class="p0"><span>ip_vs_sed</span></p>
<p class="p0"><span>ip_vs_sh</span></p>
<p class="p0"><span>ip_vs_wlc</span></p>
<p class="p0"><span>ip_vs_wrr</span></p>
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span>#Vi </span><span><a><span>/etc/sysctl.conf</span></a></span></p>
<p class="p0"><span>net.ipv4.ip_forward = 0 </span></p>
<p class="p0"><span><span style="font-family: 宋体;">改为：</span></span></p>
<p class="p0"><span>net.ipv4.ip_forward = 1</span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">使修改生效：</span></span></p>
<p class="p0"><span>/sbin/sysctl -p</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在MD和BD上安装heartbeat软件包</span></span></p>
<p class="p0">
<p class="p0"><span>#Rpm -Uvh perl-xx-xx-xx.rpm</span></p>
<p class="p0"><span>#Yum  install heartbeat</span></p>
<p class="p0"><span>#Rpm -Uvh arptables-noarp-addr-0.99.2-1.rh.el.um.1.noarch.rpm </span></p>
<p class="p0"><span>#rpm -Uvh perl-Mail-POP3Client-2.17-1.el5.centos.noarch.rpm</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">缺少perl包，就使用yum install perl-xx-xx</span></span></p>
<p class="p0"><span>#Perl -CPAN -e shell</span></p>
<p class="p0"><span><span style="font-family: 宋体;">这样安装的perl包不知道为何不好使？奇怪</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">这里VIP实际上是绑定在2台director上。所以director之间需要做心跳处理。心跳线使用eth1口，用交叉线连接起来。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">交叉线的一端：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">另外一端：</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">这样可以避免影响其他服务器。</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">配置heartbeat</span></span></p>
<p class="p0"><span>Heartbeat<span style="font-family: 宋体;">有3个配置文件：</span></span></p>
<p class="p0"><span>Ha.cf</span></p>
<p class="p0"><span>Authkeys</span></p>
<p class="p0"><span>Haresources</span></p>
<p class="p0">
<p class="p0"><span>ldirectord<span style="font-family: 宋体;">进程的配置文件</span></span></p>
<p class="p0"><span>Ldirectord.cf</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">一共需要配置4个配置文件。</span></span></p>
<p class="p0">
<p class="p0"><span>#vi ha.cf</span></p>
<p class="p0"><span>logfacility  local0</span></p>
<p class="p0"><span>bcast        eth1</span></p>
<p class="p0"><span>mcast eth1 225.0.0.1 694 1 0</span></p>
<p class="p0"><span>auto_failback off</span></p>
<p class="p0"><span>node        ndb1</span></p>
<p class="p0"><span>node        ndb2</span></p>
<p class="p0"><span>respawn hacluster /usr/lib/heartbeat/ipfail</span></p>
<p class="p0"><span>apiauth ipfail gid=haclient uid=hacluster</span></p>
<p class="p0">
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span># vi authkeys </span></p>
<p class="p0"><span>auth 3</span></p>
<p class="p0"><span>3 md5 514a49f83820e34c877ff48770e48ea7</span></p>
<p class="p0">
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0"><span># vi haresources</span></p>
<p class="p0"><span>ndb1</span><span> \</span></p>
<p class="p0"><span> ldirectord::ldirectord.cf \</span></p>
<p class="p0"><span> LVSSyncDaemonSwap::master \</span></p>
<p class="p0"><span> IPaddr2::192.168.131.105/24/eth0/192.168.131.255</span></p>
<p class="p0">
<p class="p0"><span>Ndb2<span style="font-family: 宋体;">上需要将主机名更改一下。</span></span></p>
<p class="p0">
<p class="p0"><span>:wq</span></p>
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">设置属性并使heartbeat开机启动</span></span></p>
<p class="p0"><span># chmod 600 /etc/ha.d/authkeys</span></p>
<p class="p0"><span>#/sbin/chkconfig &#8211;level 2345 heartbeat on</span></p>
<p class="p0"><span>#/sbin/chkconfig &#8211;del ldirectord</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">启动heartbeat：</span></span></p>
<p class="p0"><span>/etc/init.d/ldirectord stop</span></p>
<p class="p0"><span>/etc/init.d/heartbeat start</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在MD和BD上检查VIP是否生效：</span></span></p>
<p class="p0"><span>ip addr sh eth0</span></p>
<p class="p0"><span>[root@ndb1 ha.d]# ip addr sh eth0</span></p>
<p class="p0"><span>2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast qlen 1000</span></p>
<p class="p0"><span> link/ether 00:30:48:28:c6:85 brd ff:ff:ff:ff:ff:ff</span></p>
<p class="p0"><span> inet 192.168.131.164/24 brd 192.168.131.255 scope global eth0</span></p>
<p class="p0"><span> inet 192.168.131.105/24 brd 192.168.131.255 scope global secondary eth0</span></p>
<p class="p0"><span> inet6 fe80::230:48ff:fe28:c685/64 scope link </span></p>
<p class="p0"><span> valid_lft forever preferred_lft forever</span></p>
<p class="p0"><span>[root@ndb1 ha.d]# </span></p>
<p class="p0">
<p class="p0"><span>[root@ndb2 ~]# ip addr sh eth0</span></p>
<p class="p0"><span>2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast qlen 1000</span></p>
<p class="p0"><span> link/ether 00:30:48:28:c4:af brd ff:ff:ff:ff:ff:ff</span></p>
<p class="p0"><span> inet 192.168.131.26/24 brd 192.168.131.255 scope global eth0</span></p>
<p class="p0"><span> inet6 fe80::230:48ff:fe28:c4af/64 scope link </span></p>
<p class="p0"><span> valid_lft forever preferred_lft forever</span></p>
<p class="p0"><span>[root@ndb2 ~]#</span></p>
<p class="p0"><span><span style="font-family: 宋体;">现在在MD（164）上已经生效了。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">检查ldirectored进程</span></span></p>
<p class="p0"><span>[root@ndb1 ha.d]# /usr/sbin/ldirectord ldirectord.cf status</span></p>
<p class="p0"><span>ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 5596</span></p>
<p class="p0"><span>[root@ndb1 ha.d]# </span></p>
<p class="p0"><span>[root@ndb2 ~]# /usr/sbin/ldirectord ldirectord.cf status</span></p>
<p class="p0"><span>ldirectord is stopped for /etc/ha.d/ldirectord.cf</span></p>
<p class="p0"><span>[root@ndb2 ~]#</span></p>
<p class="p0"><span>VIP<span style="font-family: 宋体;">生效的director应该是running状态，standby应该是stop状态。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">利用ipvs检查包转发是否生效</span></span></p>
<p class="p0"><span>[root@ndb1 ha.d]# /sbin/ipvsadm -L -n</span></p>
<p class="p0"><span>IP Virtual Server version 1.2.1 (size=4096)</span></p>
<p class="p0"><span>Prot LocalAddress:Port Scheduler Flags</span></p>
<p class="p0"><span> -&gt; RemoteAddress:Port           Forward Weight ActiveConn InActConn</span></p>
<p class="p0"><span>TCP  192.168.131.105:3306 wrr</span></p>
<p class="p0"><span> -&gt; 192.168.131.77:3306          Route   1      3          3034 </span></p>
<p class="p0"><span> -&gt; 192.168.131.101:3306         Route   1      3          3038 </span></p>
<p class="p0"><span>[root@ndb1 ha.d]# </span></p>
<p class="p0">
<p class="p0"><span>[root@ndb2 ~]# /sbin/ipvsadm -L -n</span></p>
<p class="p0"><span>IP Virtual Server version 1.2.1 (size=4096)</span></p>
<p class="p0"><span>Prot LocalAddress:Port Scheduler Flags</span></p>
<p class="p0"><span> -&gt; RemoteAddress:Port           Forward Weight ActiveConn InActConn</span></p>
<p class="p0"><span>[root@ndb2 ~]#</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在MB上已经生效了。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">在MD和BD上检查</span></span><span>LVSSyncDaemonSwap</span><span><span style="font-family: 宋体;">的状态：</span></span></p>
<p class="p0"><span>[root@ndb1 ha.d]# /etc/ha.d/resource.d/LVSSyncDaemonSwap master status</span></p>
<p class="p0"><span>master running</span></p>
<p class="p0"><span>(ipvs_syncmaster pid: 5689)</span></p>
<p class="p0"><span>[root@ndb1 ha.d]#</span></p>
<p class="p0"><span>[root@ndb2 ~]# /etc/ha.d/resource.d/LVSSyncDaemonSwap master status</span></p>
<p class="p0"><span>master stopped</span></p>
<p class="p0"><span>(ipvs_syncbackup pid: 5493)</span></p>
<p class="p0"><span>[root@ndb2 ~]# </span></p>
<p class="p0"><span><span style="font-family: 宋体;">同样，standby的处于stopped状态。</span></span></p>
<p class="p0">
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以下在RS服务器上执行：</span></span></p>
<p class="p0"><span>ARP<span style="font-family: 宋体;">转发限制</span></span></p>
<p class="p0"><span>MD<span style="font-family: 宋体;">或者BD采用ARP欺骗将ARP包转发给下面的realserver。为了转发成功，需要做ARP限制。</span></span></p>
<p class="p0"><span>#/etc/init.d/arptables_jf stop</span></p>
<p class="p0"><span>#/usr/sbin/arptables-noarp-addr 192.168.6.240 start</span></p>
<p class="p0"><span>#/etc/init.d/arptables_jf save</span></p>
<p class="p0"><span>#/sbin/chkconfig &#8211;level 2345 arptables_jf on</span></p>
<p class="p0"><span>#/etc/init.d/arptables_jf start</span></p>
<p class="p0"><span><span style="font-family: 宋体;">查看限制链表</span></span></p>
<p class="p0"><span>[root@sql2 mysql-cluster]# /sbin/arptables -L -v -n</span></p>
<p class="p0"><span>Chain IN (policy ACCEPT 29243 packets, 819K bytes)</span></p>
<p class="p0"><span> pkts bytes target     in     out     source-ip            destination-ip       source-hw          destination-hw     hlen   op         hrd        pro </span></p>
<p class="p0"><span> 54  1512 DROP       *      *       0.0.0.0/0            192.168.131.105      00/00              00/00              any    0000/0000  0000/0000  0000/0000 </span></p>
<p class="p0">
<p class="p0"><span>Chain OUT (policy ACCEPT 3931 packets, 110K bytes)</span></p>
<p class="p0"><span> pkts bytes target     in     out     source-ip            destination-ip       source-hw          destination-hw     hlen   op         hrd        pro </span></p>
<p class="p0"><span> 0     0 mangle     *      eth0    192.168.131.105      0.0.0.0/0            00/00              00/00              any    0000/0000  0000/0000  0000/0000 &#8211;mangle-ip-s 192.168.131.101 </span></p>
<p class="p0">
<p class="p0"><span>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)</span></p>
<p class="p0"><span> pkts bytes target     in     out     source-ip            destination-ip       source-hw          destination-hw     hlen   op         hrd        pro </span></p>
<p class="p0"><span>[root@sql2 mysql-cluster]# </span></p>
<p class="p0">
<p class="p0"><span>[root@sql1 ~]# /sbin/arptables -L -v -n</span></p>
<p class="p0"><span>Chain IN (policy ACCEPT 29375 packets, 823K bytes)</span></p>
<p class="p0"><span> pkts bytes target     in     out     source-ip            destination-ip       source-hw          destination-hw     hlen   op         hrd        pro </span></p>
<p class="p0"><span> 54  1512 DROP       *      *       0.0.0.0/0            192.168.131.105      00/00              00/00              any    0000/0000  0000/0000  0000/0000 </span></p>
<p class="p0">
<p class="p0"><span>Chain OUT (policy ACCEPT 3903 packets, 109K bytes)</span></p>
<p class="p0"><span> pkts bytes target     in     out     source-ip            destination-ip       source-hw          destination-hw     hlen   op         hrd        pro </span></p>
<p class="p0"><span> 0     0 mangle     *      eth0    192.168.131.105      0.0.0.0/0            00/00              00/00              any    0000/0000  0000/0000  0000/0000 &#8211;mangle-ip-s 192.168.131.77 </span></p>
<p class="p0">
<p class="p0"><span>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)</span></p>
<p class="p0"><span> pkts bytes target     in     out     source-ip            destination-ip       source-hw          destination-hw     hlen   op         hrd        pro </span></p>
<p class="p0"><span>[root@sql1 ~]# </span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">这样，由MD或者BD转发过来的ARP包就被链表控制了。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">设置如何接收ARP包</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">以下在所有RS上执行</span></span></p>
<p class="p0"><span># cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0</span></p>
<p class="p0"><span>#Vi /etc/sysconfig/network-scripts/ifcfg-lo\:0 </span></p>
<p class="p0"><span>DEVICE=lo:0</span></p>
<p class="p0"><span>IPADDR=192.168.131.105</span></p>
<p class="p0"><span>NETMASK=255.255.255.255</span></p>
<p class="p0"><span>NETWORK=192.168.131.0</span></p>
<p class="p0"><span>BROADCAST=192.168.131.255</span></p>
<p class="p0"><span>ONBOOT=yes</span></p>
<p class="p0"><span>NAME=loopback</span></p>
<p class="p0"><span>:wq</span></p>
<p class="p0"><span>#/sbin/ifup lo</span></p>
<p class="p0"><span><span style="font-family: 宋体;">查看lo:0</span></span></p>
<p class="p0"><span>[root@sql1 ~]# ip addr sh lo</span></p>
<p class="p0"><span>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 16436 qdisc noqueue </span></p>
<p class="p0"><span> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</span></p>
<p class="p0"><span> inet 127.0.0.1/8 scope host lo</span></p>
<p class="p0"><span> inet 192.168.131.105/32 brd 192.168.131.255 scope global lo:0</span></p>
<p class="p0"><span> inet6 ::1/128 scope host </span></p>
<p class="p0"><span> valid_lft forever preferred_lft forever</span></p>
<p class="p0"><span>[root@sql1 ~]# </span></p>
<p class="p0">
<p class="p0"><span>[root@sql2 mysql-cluster]# ip addr sh lo</span></p>
<p class="p0"><span>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 16436 qdisc noqueue </span></p>
<p class="p0"><span> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</span></p>
<p class="p0"><span> inet 127.0.0.1/8 scope host lo</span></p>
<p class="p0"><span> inet 192.168.131.105/32 brd 192.168.131.255 scope global lo:0</span></p>
<p class="p0"><span> inet6 ::1/128 scope host </span></p>
<p class="p0"><span> valid_lft forever preferred_lft forever</span></p>
<p class="p0"><span>[root@sql2 mysql-cluster]#</span></p>
<p class="p0"><span><span style="font-family: 宋体;">重新启动服务器</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">以下在所有服务器上执行（请确认ip，服务器上没有running任何正在使用的服务）</span></span></p>
<p class="p0"><span>reboot</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">启动mysql cluster：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">顺序：</span></span></p>
<p class="p0"><span>ndb_mgmd &#8211; 164/26</span></p>
<p class="p0"><span>Ndbd &#8211; 101/77</span></p>
<p class="p0"><span>Mysqld &#8211; <span style="font-family: 宋体;">所有</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">检查服务是否正常</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">以下在ndb上执行</span></span></p>
<p class="p0"><span>#ndb_mgm</span></p>
<p class="p0"><span>[root@ndb1 ha.d]# ndb_mgm</span></p>
<p class="p0"><span>&#8211; NDB Cluster &#8211; Management Client &#8211;</span></p>
<p class="p0"><span>ndb_mgm&gt; show</span></p>
<p class="p0"><span>Connected to Management Server at: 192.168.131.164:1186</span></p>
<p class="p0"><span>Cluster Configuration</span></p>
<p class="p0"><span>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></p>
<p class="p0"><span>[ndbd(NDB)]     2 node(s)</span></p>
<p class="p0"><span>id=3    @192.168.131.77  (Version: 5.0.67, Nodegroup: 0, Master)</span></p>
<p class="p0"><span>id=4    @192.168.131.101  (Version: 5.0.67, Nodegroup: 0)</span></p>
<p class="p0">
<p class="p0"><span>[ndb_mgmd(MGM)] 2 node(s)</span></p>
<p class="p0"><span>id=1    @192.168.131.164  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=2    @192.168.131.26  (Version: 5.0.67)</span></p>
<p class="p0">
<p class="p0"><span>[mysqld(API)]   7 node(s)</span></p>
<p class="p0"><span>id=5    @192.168.131.101  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=6    @192.168.131.26  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=7    @192.168.131.164  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=8    @192.168.131.77  (Version: 5.0.67)</span></p>
<p class="p0"><span>id=9 (not connected, accepting connect from any host)</span></p>
<p class="p0"><span>id=10 (not connected, accepting connect from any host)</span></p>
<p class="p0"><span>id=11 (not connected, accepting connect from any host)</span></p>
<p class="p0">
<p class="p0"><span>ndb_mgm&gt; </span></p>
<p class="p0"><span><span style="font-family: 宋体;">一切正常。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">检查heartbeat是否正常：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">关闭BD，在MD上查看日志：</span></span></p>
<p class="p0"><span>[root@ndb1 ha.d]# tail -f /var/log/messages</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 heartbeat: [5462]: info: Received shutdown notice from &#8217;ndb2&#8242;.</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 heartbeat: [5462]: info: Resources being acquired from ndb2.</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 harc[7085]: info: Running /etc/ha.d/rc.d/status status</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 mach_down[7118]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 mach_down[7118]: info: mach_down takeover complete for node ndb2.</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 heartbeat: [5462]: info: mach_down takeover complete.</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 ldirectord[7153]: Invoking ldirectord invoked as: /etc/ha.d/resource.d/ldirectord ldirectord.cf status </span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 ldirectord[7153]: ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 5596 </span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 ldirectord[7153]: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 heartbeat: [7086]: info: Local Resource acquisition completed.</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 harc[7175]: info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 ip-request-resp[7175]: received ip-request-resp ldirectord::ldirectord.cf OK yes</span></p>
<p class="p0"><span>Dec 17 19:42:21 ndb1 ResourceManager[7196]: info: Acquiring resource group: ndb1 ldirectord::ldirectord.cf LVSSyncDaemonSwap::master IPaddr2::192.168.131.105/24/eth0/192.168.131.255</span></p>
<p class="p0"><span>Dec 17 19:42:22 ndb1 ldirectord[7223]: Invoking ldirectord invoked as: /etc/ha.d/resource.d/ldirectord ldirectord.cf status </span></p>
<p class="p0"><span>Dec 17 19:42:22 ndb1 ldirectord[7223]: ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 5596 </span></p>
<p class="p0"><span>Dec 17 19:42:22 ndb1 ldirectord[7223]: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:42:22 ndb1 ResourceManager[7196]: info: Running /etc/ha.d/resource.d/ldirectord ldirectord.cf start</span></p>
<p class="p0"><span>Dec 17 19:42:23 ndb1 ldirectord[7245]: Invoking ldirectord invoked as: /etc/ha.d/resource.d/ldirectord ldirectord.cf start </span></p>
<p class="p0"><span>Dec 17 19:42:23 ndb1 IPaddr2[7291]: INFO:  Running OK</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">如果没有出现异常，表明一切正常。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">破坏性试验</span></span></p>
<p class="p0"><span>1) </span><span><span style="font-family: 宋体;">检查ndbd</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">关闭任意一台ndbd的进程，在ndb_mgm上查看是否失去连接。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">如果失去连接，表示已经识别出来。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">此时在数据库表中增加内容之后启动刚刚关闭的ndbd，检查新写入的数据是否已经被同步过来。如果同步过来，一切正常。</span></span></p>
<p class="p0"><span>2) </span><span><span style="font-family: 宋体;">检查heartbeat</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">关闭MD，检查BD的反应：</span></span></p>
<p class="p0"><span>[root@ndb2 ~]# tail -f /var/log/messages</span></p>
<p class="p0"><span>Dec 17 19:47:22 ndb2 harc[6862]: info: Running /etc/ha.d/rc.d/status status</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Comm_now_up(): updating status to active</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Local status now set to: &#8217;active&#8217;</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Starting child client &#8221;/usr/lib/heartbeat/ipfail&#8221; (498,496)</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6879]: info: Starting &#8221;/usr/lib/heartbeat/ipfail&#8221; as uid 498  gid 496 (pid 6879)</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: remote resource transition completed.</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: remote resource transition completed.</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Local Resource acquisition completed. (none)</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Initial resource acquisition complete (T_RESOURCES(them))</span></p>
<p class="p0"><span>Dec 17 19:47:29 ndb2 ipfail: [6879]: info: Ping node count is balanced.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6852]: info: Received shutdown notice from &#8217;ndb1&#8242;.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6852]: info: Resources being acquired from ndb1.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6884]: info: acquire all HA resources (standby).</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ResourceManager[6911]: info: Acquiring resource group: ndb2 ldirectord::ldirectord.cf LVSSyncDaemonSwap::master IPaddr2::192.168.131.105/24/eth0/192.168.131.255</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6957]: ldirectord is stopped for /etc/ha.d/ldirectord.cf </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6957]: Exiting with exit_status 3: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6885]: info: Local Resource acquisition completed.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6961]: ldirectord is stopped for /etc/ha.d/ldirectord.cf </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6961]: Exiting with exit_status 3: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ResourceManager[6911]: info: Running /etc/ha.d/resource.d/ldirectord ldirectord.cf start</span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6986]: Starting Linux Director v1.77.2.32 as daemon </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6988]: Added virtual server: 192.168.131.105:3306 </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6988]: Quiescent real server: 192.168.131.101:3306 mapped from 192.168.131.101:3306 ( x 192.168.131.105:3306) (Weight set to 0) </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6988]: Quiescent real server: 192.168.131.77:3306 mapped from 192.168.131.77:3306 ( x 192.168.131.105:3306) (Weight set to 0) </span></p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ResourceManager[6911]: info: Running /etc/ha.d/resource.d/LVSSyncDaemonSwap master start</span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 kernel: IPVS: stopping sync thread 5493 &#8230;</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: sync thread stopped!</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 LVSSyncDaemonSwap[7050]: info: ipvs_syncbackup down</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: sync thread started: state = MASTER, mcast_ifn = eth0, syncid = 0</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 LVSSyncDaemonSwap[7050]: info: ipvs_syncmaster up</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 LVSSyncDaemonSwap[7050]: info: ipvs_syncmaster obtained</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7102]: INFO:  Resource is stopped</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 ResourceManager[6911]: info: Running /etc/ha.d/resource.d/IPaddr2 192.168.131.105/24/eth0/192.168.131.255 start</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7214]: INFO: ip -f inet addr add 192.168.131.105/24 brd 192.168.131.255 dev eth0</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 avahi-daemon[2776]: Registering new address record for 192.168.131.105 on eth0.</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7214]: INFO: ip link set eth0 up</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7214]: INFO: /usr/lib/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-192.168.131.105 eth0 192.168.131.105 auto not_used not_used</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7185]: INFO:  Success</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 heartbeat: [6884]: info: all HA resource acquisition completed (standby).</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 heartbeat: [6852]: info: Standby resource acquisition done [all].</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 harc[7277]: info: Running /etc/ha.d/rc.d/status status</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 last message repeated 14 times</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 mach_down[7293]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 mach_down[7293]: info: mach_down takeover complete for node ndb1.</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 heartbeat: [6852]: info: mach_down takeover complete.</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 harc[7327]: info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 ip-request-resp[7327]: received ip-request-resp ldirectord::ldirectord.cf OK yes</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 ResourceManager[7348]: info: Acquiring resource group: ndb2 ldirectord::ldirectord.cf LVSSyncDaemonSwap::master IPaddr2::192.168.131.105/24/eth0/192.168.131.255</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 last message repeated 3 times</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 ldirectord[7375]: ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 6988 </span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 ldirectord[7375]: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 ResourceManager[7348]: info: Running /etc/ha.d/resource.d/ldirectord ldirectord.cf start</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 last message repeated 6 times</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 IPaddr2[7443]: INFO:  Running OK</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 last message repeated 289 times</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 heartbeat: [6852]: WARN: node ndb1: is dead</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 heartbeat: [6852]: info: Dead node ndb1 gave up resources.</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 heartbeat: [6852]: info: Link ndb1:eth1 dead.</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 ipfail: [6879]: info: Status update: Node ndb1 now has status dead</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 last message repeated 8 times</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: NS: We are dead. :&lt;</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: Link Status update: Link ndb1/eth1 now has status dead</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: We are dead. :&lt;</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: Asking other side for ping node count.</span></p>
<p class="p0"><span>Dec 17 19:48:18 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers[root@ndb2 ~]# tail -f /var/log/messages</span></p>
<p class="p0"><span>Dec 17 19:47:22 ndb2 harc[6862]: info: Running /etc/ha.d/rc.d/status status</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Comm_now_up(): updating status to active</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Local status now set to: &#8217;active&#8217;</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Starting child client &#8221;/usr/lib/heartbeat/ipfail&#8221; (498,496)</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6879]: info: Starting &#8221;/usr/lib/heartbeat/ipfail&#8221; as uid 498  gid 496 (pid 6879)</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: remote resource transition completed.</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: remote resource transition completed.</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Local Resource acquisition completed. (none)</span></p>
<p class="p0"><span>Dec 17 19:47:23 ndb2 heartbeat: [6852]: info: Initial resource acquisition complete (T_RESOURCES(them))</span></p>
<p class="p0"><span>Dec 17 19:47:29 ndb2 ipfail: [6879]: info: Ping node count is balanced.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6852]: info: Received shutdown notice from &#8217;ndb1&#8242;.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6852]: info: Resources being acquired from ndb1.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6884]: info: acquire all HA resources (standby).</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ResourceManager[6911]: info: Acquiring resource group: ndb2 ldirectord::ldirectord.cf LVSSyncDaemonSwap::master IPaddr2::192.168.131.105/24/eth0/192.168.131.255</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6957]: ldirectord is stopped for /etc/ha.d/ldirectord.cf </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6957]: Exiting with exit_status 3: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 heartbeat: [6885]: info: Local Resource acquisition completed.</span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6961]: ldirectord is stopped for /etc/ha.d/ldirectord.cf </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ldirectord[6961]: Exiting with exit_status 3: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:47:43 ndb2 ResourceManager[6911]: info: Running /etc/ha.d/resource.d/ldirectord ldirectord.cf start</span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6986]: Starting Linux Director v1.77.2.32 as daemon </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6988]: Added virtual server: 192.168.131.105:3306 </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6988]: Quiescent real server: 192.168.131.101:3306 mapped from 192.168.131.101:3306 ( x 192.168.131.105:3306) (Weight set to 0) </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ldirectord[6988]: Quiescent real server: 192.168.131.77:3306 mapped from 192.168.131.77:3306 ( x 192.168.131.105:3306) (Weight set to 0) </span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 ResourceManager[6911]: info: Running /etc/ha.d/resource.d/LVSSyncDaemonSwap master start</span></p>
<p class="p0"><span>Dec 17 19:47:44 ndb2 kernel: IPVS: stopping sync thread 5493 &#8230;</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: sync thread stopped!</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 LVSSyncDaemonSwap[7050]: info: ipvs_syncbackup down</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: sync thread started: state = MASTER, mcast_ifn = eth0, syncid = 0</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 LVSSyncDaemonSwap[7050]: info: ipvs_syncmaster up</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 LVSSyncDaemonSwap[7050]: info: ipvs_syncmaster obtained</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7102]: INFO:  Resource is stopped</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 ResourceManager[6911]: info: Running /etc/ha.d/resource.d/IPaddr2 192.168.131.105/24/eth0/192.168.131.255 start</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7214]: INFO: ip -f inet addr add 192.168.131.105/24 brd 192.168.131.255 dev eth0</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 avahi-daemon[2776]: Registering new address record for 192.168.131.105 on eth0.</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7214]: INFO: ip link set eth0 up</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7214]: INFO: /usr/lib/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-192.168.131.105 eth0 192.168.131.105 auto not_used not_used</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 IPaddr2[7185]: INFO:  Success</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 heartbeat: [6884]: info: all HA resource acquisition completed (standby).</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 heartbeat: [6852]: info: Standby resource acquisition done [all].</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 harc[7277]: info: Running /etc/ha.d/rc.d/status status</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 last message repeated 14 times</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 mach_down[7293]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 mach_down[7293]: info: mach_down takeover complete for node ndb1.</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 heartbeat: [6852]: info: mach_down takeover complete.</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 harc[7327]: info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 ip-request-resp[7327]: received ip-request-resp ldirectord::ldirectord.cf OK yes</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 ResourceManager[7348]: info: Acquiring resource group: ndb2 ldirectord::ldirectord.cf LVSSyncDaemonSwap::master IPaddr2::192.168.131.105/24/eth0/192.168.131.255</span></p>
<p class="p0"><span>Dec 17 19:47:45 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 last message repeated 3 times</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 ldirectord[7375]: ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 6988 </span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 ldirectord[7375]: Exiting from ldirectord status </span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 ResourceManager[7348]: info: Running /etc/ha.d/resource.d/ldirectord ldirectord.cf start</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 last message repeated 6 times</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 IPaddr2[7443]: INFO:  Running OK</span></p>
<p class="p0"><span>Dec 17 19:47:46 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 last message repeated 289 times</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 heartbeat: [6852]: WARN: node ndb1: is dead</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 heartbeat: [6852]: info: Dead node ndb1 gave up resources.</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 heartbeat: [6852]: info: Link ndb1:eth1 dead.</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 ipfail: [6879]: info: Status update: Node ndb1 now has status dead</span></p>
<p class="p0"><span>Dec 17 19:48:16 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 last message repeated 8 times</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: NS: We are dead. :&lt;</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: Link Status update: Link ndb1/eth1 now has status dead</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: We are dead. :&lt;</span></p>
<p class="p0"><span>Dec 17 19:48:17 ndb2 ipfail: [6879]: info: Asking other side for ping node count.</span></p>
<p class="p0"><span>Dec 17 19:48:18 ndb2 kernel: IPVS: ip_vs_wrr_schedule(): no available servers</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">如果没有错误，表明heartbeat已经切换。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">此时再次插入数据验证，如果还可以继续写入，表明配置完全成功。</span></span></p>
<p class="p0">
<p class="p0"><span>Mysql cluster<span style="font-family: 宋体;">的测试报告：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">在192.168.8.48上部署测试脚本，让这台服务器表示一个客户端请求读写数据库。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">测试脚本1：</span></span></p>
<p class="p0"><span>[root@localhost mysql-cluster]# cat /data/pay.kingsoft.com/wwwroot/test.php </span></p>
<p class="p0"><span>&lt;?php</span></p>
<p class="p0">
<p class="p0"><span>$link = mysql_connect(&#8217;192.168.131.105&#8242;, &#8217;ldirector&#8217;, &#8217;xxxxxxxxx&#8217;);</span></p>
<p class="p0"><span>mysql_select_db(&#8216;kingsoft&#8217;,$link);</span></p>
<p class="p0"><span>$sql = &#8221;insert into `preference`(`id`,`preferenceSerialNumber`,`username`,`preferenceTypeId`,`isExpired`,`isUsed`,`preferenceUsername`,`equalMoney`,`genDatetime`,`useDatetime`,`grantDatetime`,`expriedDatetime`) values ( NULL,&#8217;514a49f83820e34c877ff48770e48ea7&#8242;,&#8217;liujun&#8217;,&#8217;2&#8242;,&#8217;1&#8242;,&#8217;1&#8242;,&#8217;kingsoft&#8217;,&#8217;512.23&#8242;,&#8217;2008-12-03&#8242;,&#8217;2008-12-03&#8242;,&#8217;2008-12-03&#8242;,&#8217;2008-12-03&#8242;)&#8221;;</span></p>
<p class="p0"><span>for($i = 0;$i &lt; 100 ;$i++){</span></p>
<p class="p0"><span> mysql_query($sql);</span></p>
<p class="p0"><span>}</span></p>
<p class="p0"><span>mysql_close($link);</span></p>
<p class="p0"><span>?&gt;</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">测试脚本2：</span></span></p>
<p class="p0"><span>[root@localhost mysql-cluster]# cat test.sh </span></p>
<p class="p0"><span>#!/bin/sh</span></p>
<p class="p0"><span>i=0;</span></p>
<p class="p0"><span>j=0;</span></p>
<p class="p0">
<p class="p0"><span> while [ $i -lt  1000 ]</span></p>
<p class="p0"><span> do</span></p>
<p class="p0"><span> wget -q http://pay.kingsoft.sug/test.php;</span></p>
<p class="p0"><span> i=`expr $i + 1`;</span></p>
<p class="p0"><span> done</span></p>
<p class="p0">
<p class="p0"><span>sleep 2;</span></p>
<p class="p0">
<p class="p0"><span>find . -name &#8221;test.php.*&#8221; | xargs rm -rf ;</span></p>
<p class="p0">
<p class="p0"><span>while [ $j -lt 1000 ]</span></p>
<p class="p0"><span>do</span></p>
<p class="p0"><span> mysql -uldirector -pxxxxxxxxxxx  -h192.168.131.105 -e &#8221;use kingsoft; insert into preference(preferenceSerialNumber,username,preferenceTypeId,preferenceUsername,equalMoney,genDatetime,useDatetime,grantDatetime,expriedDatetime) values(&#8217;514a49f83820e34c877ff48770e48ea7&#8242;,&#8217;liujun2&#8242;,&#8217;3&#8242;,&#8217;liujun33333&#8242;,&#8217;33.8&#8242;,&#8217;2008-12-23 7:05:00&#8242;,&#8217;2008-12-23 7:15:00&#8242;,&#8217;2008-12-23 7:25:00&#8242;,&#8217;2008-12-23 7:35:00&#8242;)&#8221;;</span></p>
<p class="p0"><span> j=`expr $j + 1`;</span></p>
<p class="p0"><span>done</span></p>
<p class="p0"><span>sleep 3;</span></p>
<p class="p0"><span>server=`mysql -uldirector -pxxxxxxxxxx  -h192.168.131.105 -e &#8221;use kingsoft;select count(*) from preference&#8221;`;</span></p>
<p class="p0"><span>datetime=`date +%T`;</span></p>
<p class="p0"><span>echo $datetime&#8221;&#8212;&#8212;&#8212;-&#8221;$server &gt;&gt; /tmp/mysql-cluster/mysql.log;</span></p>
<p class="p0">
<p class="p0"><span>[root@localhost mysql-cluster]#</span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">测试时间：</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">在192.168.8.48的cron中添加：</span></span></p>
<p class="p0"><span>[root@localhost mysql-cluster]# crontab -e</span></p>
<p class="p0"><span>*/3 * * * * sh /tmp/mysql-cluster/test.sh &gt; /dev/null 2&gt;&amp;1</span></p>
<p class="p0"><span>[root@localhost mysql-cluster]#</span></p>
<p class="p0"><span><span style="font-family: 宋体;">连续运行24小时。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">测试结果：</span></span></p>
<p class="p0"><span>#Cat mysql.log</span></p>
<p class="p0"><span>14:31:54&#8212;&#8212;&#8212;-count(*) 21022</span></p>
<p class="p0"><span>14:35:00&#8212;&#8212;&#8212;-count(*) 42634</span></p>
<p class="p0"><span>14:37:57&#8212;&#8212;&#8212;-count(*) 63608</span></p>
<p class="p0"><span>14:40:55&#8212;&#8212;&#8212;-count(*) 84708</span></p>
<p class="p0"><span>14:43:55&#8212;&#8212;&#8212;-count(*) 105887</span></p>
<p class="p0"><span>14:46:54&#8212;&#8212;&#8212;-count(*) 127045</span></p>
<p class="p0"><span>14:49:58&#8212;&#8212;&#8212;-count(*) 148512</span></p>
<p class="p0"><span>14:53:01&#8212;&#8212;&#8212;-count(*) 169795</span></p>
<p class="p0"><span>14:56:27&#8212;&#8212;&#8212;-count(*) 190714</span></p>
<p class="p0"><span>14:59:29&#8212;&#8212;&#8212;-count(*) 209921</span></p>
<p class="p0"><span>15:02:03&#8212;&#8212;&#8212;-count(*) 231380</span></p>
<p class="p0"><span>15:03:51&#8212;&#8212;&#8212;-count(*) 252231</span></p>
<p class="p0"><span>15:05:12&#8212;&#8212;&#8212;-count(*) 269825</span></p>
<p class="p0"><span>15:05:33&#8212;&#8212;&#8212;-count(*) 271824</span></p>
<p class="p0"><span>15:08:05&#8212;&#8212;&#8212;-count(*) 291141</span></p>
<p class="p0"><span>15:10:59&#8212;&#8212;&#8212;-count(*) 311836</span></p>
<p class="p0"><span>15:14:00&#8212;&#8212;&#8212;-count(*) 332951</span></p>
<p class="p0"><span>15:16:57&#8212;&#8212;&#8212;-count(*) 353841</span></p>
<p class="p0"><span>15:19:59&#8212;&#8212;&#8212;-count(*) 374977</span></p>
<p class="p0"><span>15:23:03&#8212;&#8212;&#8212;-count(*) 396181</span></p>
<p class="p0"><span>15:26:01&#8212;&#8212;&#8212;-count(*) 417064</span></p>
<p class="p0"><span>15:29:01&#8212;&#8212;&#8212;-count(*) 438098</span></p>
<p class="p0"><span>15:32:03&#8212;&#8212;&#8212;-count(*) 459191</span></p>
<p class="p0"><span>15:35:05&#8212;&#8212;&#8212;-count(*) 480229</span></p>
<p class="p0"><span>15:38:05&#8212;&#8212;&#8212;-count(*) 501222</span></p>
<p class="p0"><span>15:41:02&#8212;&#8212;&#8212;-count(*) 521868</span></p>
<p class="p0"><span>15:43:59&#8212;&#8212;&#8212;-count(*) 542721</span></p>
<p class="p0"><span>15:47:02&#8212;&#8212;&#8212;-count(*) 563841</span></p>
<p class="p0"><span>16:00:32&#8212;&#8212;&#8212;-count(*) 698215</span></p>
<p class="p0"><span>18:50:49&#8212;&#8212;&#8212;-count(*) 2105513</span></p>
<p class="p0"><span>19:09:01&#8212;&#8212;&#8212;-count(*) 2105513</span></p>
<p class="p0"><span>19:26:13&#8212;&#8212;&#8212;-count(*) 2105513</span></p>
<p class="p0"><span>19:27:28&#8212;&#8212;&#8212;-count(*) 2105513</span></p>
<p class="p0"><span>[root@localhost mysql-cluster]# </span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">测试结果分析：</span></span></p>
<p class="p0"><span>1）</span><span><span style="font-family: 宋体;">当逐渐增加负载，数据库的负载并不大，CPU占用率为30%，而内存则由600MB逐渐升至2GB，最终达到极限。</span></span></p>
<p class="p0"><span>2）</span><span><span style="font-family: 宋体;">数据并发量大，并未引起数据库的异常，表明负载均衡已经解决了单台服务器负载太大的引起的瓶颈。</span></span></p>
<p class="p0"><span>3）</span><span><span style="font-family: 宋体;">由于内存有限（2GB），当表中数据达到一定量以后，会出现表满现象。这种情况可以通过增加内存来解决。</span></span></p>
<p class="p0"><span>4）</span><span>mysql cluster<span style="font-family: 宋体;">可以实现高可用性、负载均衡，并且通过优化参数使其进一步稳定服务。</span></span></p>
<p class="p0"><span>5）</span><span><span style="font-family: 宋体;">可以采用6.3版本的mysql cluster，来减小NDBD内存用量。</span></span></p>
<p class="p0"><span>6）</span><span>Mysql cluster<span style="font-family: 宋体;">的性能一般，比mysql replication慢。</span></span></p>
<p class="p0"><span><span style="font-family: 宋体;">需要注意的问题：</span></span></p>
<p class="p0"><span>1) </span><span><span style="font-family: 宋体;">当ndbd第一次启动的时候或者config.ini更改的时候，需要加&#8211;initial参数进行初始化。</span></span></p>
<p class="p0"><span>2) </span><span><span style="font-family: 宋体;">尽可能的不要人工干预系统，出现问题需要谨慎对待。</span></span></p>
<p class="p0">
<p class="p0"><span><span style="font-family: 宋体;">以下是一个外国人写的注意事项和优化：</span></span></p>
<p class="p0"><span> 1. Broken up into three parts. The MySQL servers sit separate from the NDB Storage Engine, which are storage nodes (NDB nodes). The third part is called a management server. The management server, oddly enough, isn’t required once the cluster is up and running unless you want to add another storage node.</span></p>
<p class="p0"><span> 2. Memory based storage engine. If you’re not using 5.1+ then you must have enough RAM in each storage node to store the data set. This means that if you have four machines with 4GB of RAM each you can store 8GB of data (16GB of total storage divided by two for two copies of the data set).</span></p>
<p class="p0"><span> 3. Storage nodes are static and pre-allocate resources on startup.</span></p>
<p class="p0"><span> 4. Supports transactions and row level locking.</span></p>
<p class="p0"><span> 5. Should be noted this is a storage engine so you can’t create MyISAM or InnoDB tables inside of a cluster.</span></p>
<p class="p0"><span> 6. Uses fixed sized records. This means if you have a varchar(255) and put a single byte into it that field is still using 255 bytes.</span></p>
<p class="p0"><span> 7. No foreign key constraint support.</span></p>
<p class="p0"><span> 8. Replication across nodes is syncronous across nodes. I assume this means that an INSERT happens once all of the nodes have completed the INSERT. This is different than regular replication which is asyncronous and introduces race conditions.</span></p>
<p class="p0"><span> 9. Tables are divided into fragments (one fragment for each storage node). Each storage node is responsible for each fragment. Each fragment also has a secondary fragment, which is a copy of another node’s primary fragment. This data distribution happens automatically.</span></p>
<p class="p0"><span> 10. NDB takes your primary key, creates a hash and then converts that to a fragment. So you’ll have various rows on each different storage node.</span></p>
<p class="p0"><span> 11. A node group is a set of nodes that share the same fragment information. If you lose an entire node group you’ve lost half of the table and the cluster will not continue to operate. However, if one node in a node group fails there will still be enough data to keep the cluster up and running.</span></p>
<p class="p0"><span> 12. If a node fails and it’s secondary counterpart takes over it will, essentially, have to perform the job of two nodes. Until a node has fully recovered it will not rejoin the cluster.</span></p>
<p class="p0"><span> 13. Backups are hot and non-locking. Each node writes its own set of backup files. No support for incremental backups.</span></p>
<p class="p0"><span> 14. Because it’s memory based you could lose data on a system crash (as you might have transactions sitting in RAM when a crash occurs). The COMMIT command does not write changes to disk meaning that you could have data sitting in memory that’s not on disk when a node crashes. This means the odd truth is that MySQL Clusters support syncronous replication, but are not atomic.</span></p>
<p class="p0"><span> 15. NDB nodes will checkpoint data to disk (data + logs), which are used for system recovery. They write two logs, the UNDO and REDO logs.</span></p>
<p class="p0"><span> 16. They recommend using TRUNCATE to delete all rows from a table.</span></p>
<p class="p0"><span> 17. Modification operations are distributed to both the primary and secondary fragments (obviously).</span></p>
<p class="p0"><span> 18. NDB will run on 64-bit machines. They recommend Dual CPU 64-bit machines. NDB is threaded. Application nodes (MySQL servers) can be whatever.</span></p>
<p class="p0"><span> 19. SCI offers 30-100% better performance over gigabit.</span></p>
<p class="p0"><span> 20. They actually recommend avoiding joins and to denormalize your schemas. Are you kidding me? He actually said “Performance for joins sucks.”</span></p>
<p class="p0">
<p class="p0"><span>Overall, I’m underwhelmed by MySQL Clustering. You’re limited in storage with the RAM and you can’t optimize your schemas due to fixed field sizes. And any RDBMS “solution” that recommends you denormalize puts me off.</span></p>
<p class="p0">
<p class="p0"><span>That being said the actual technology is pretty interesting and I suspect that in a few years we’ll see the clustering features in MySQL come into their own. As of now I suspect few people would be able to justify the sacrifices for the gains clustering allows.</span></p>
<p class="p0">
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/99.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
