<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘新修]]></title> 
<link>http://liuxinxiu.com:80/index.php</link> 
<description><![CDATA[刘新修的个人博客 (Liuxinxiu'S Blog)]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘新修]]></copyright>
<item>
<link>http://liuxinxiu.com:80/php-fpm-502/</link>
<title><![CDATA[nginx加php-fpm出现502 bad gateway错误的5种解决方法]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Wed, 23 Nov 2016 04:59:52 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/php-fpm-502/</guid> 
<description>
<![CDATA[ 
	<p><span style="font-family: tahoma, arial, 宋体;">nginx出现502有很多原因，但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题，nginx将正确的客户端请求发给了后端的php-fpm进程，但是因为php-fpm进程的问题导致不能正确解析php代码，最终返回给了客户端502错误。</span></p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">服务器出现502的原因是连接超时 我们向服务器发送请求 由于服务器当前链接太多，导致服务器方面无法给于正常的响应,产生此类报错</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">因此如果你服务器并发量非常大，那只能先增加机器，然后按以下方式优化会取得更好效果;但如果你并发不大却出现502，一般都可以归结为配置问题，脚本超时问题。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">一、php-fpm进程数不够用</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">使用 netstat -napo &#124;grep &quot;php-fpm&quot; &#124; wc -l 查看一下当前fastcgi进程个数，如果个数接近conf里配置的上限，就需要调高进程数。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">但也不能无休止调高，可以根据服务器内存情况，可以把php-fpm子进程数调到100或以上，在4G内存的服务器上200就可以。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;"><br />二、调高调高linux内核打开文件数量</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">可以使用这些命令(必须是root帐号)</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>echo </span><span class="string">'ulimit -HSn 65536'</span><span> &gt;&gt; /etc/profile&nbsp;&nbsp;</span></span></li><li><span>echo <span class="string">'ulimit -HSn 65536'</span><span> &gt;&gt; /etc/rc.local&nbsp;&nbsp;</span></span></li><li class="alt"><span>source /etc/profile&nbsp;&nbsp;</span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">三、脚本执行时间超时</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">&nbsp;</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">如果脚本因为某种原因长时间等待不返回 ，导致新来的请求不能得到处理，可以适当调小如下配置。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">nginx.conf里面主要是如下</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>fastcgi_connect_timeout 300;&nbsp;&nbsp;</span></span></li><li><span>fastcgi_send_timeout 300;&nbsp;&nbsp;</span></li><li class="alt"><span>fastcgi_read_timeout 300;&nbsp;&nbsp;</span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">php-fpm.conf里如要是如下</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>request_terminate_timeout = 10s&nbsp;&nbsp;</span></span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">四、缓存设置比较小</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">&nbsp;</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">修改或增加配置到nginx.conf</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>proxy_buffer_size 64k;&nbsp;&nbsp;</span></span></li><li><span>proxy_buffers&nbsp;&nbsp;512k;&nbsp;&nbsp;</span></li><li class="alt"><span>proxy_busy_buffers_size 128k;&nbsp;&nbsp;</span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">五、 recv() failed (104: Connection reset by peer) while reading response header from upstream</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">&nbsp;</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">可能的原因机房网络丢包或者机房有硬件防火墙禁止访问该域名</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">但最重要的是程序里要设置好超时，不要使用php-fpm的request_terminate_timeout，</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">最好设成request_terminate_timeout=0;</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">因为这个参数会直接杀掉php进程，然后重启php进程，这样前端nginx就会返回104: Connection reset by peer。这个过程是很慢，总体感觉就是网站很卡。</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>May 01 10:50:58.044162 [WARNING] [pool www] child 4074, script </span><span class="string">'/usr/local/nginx/html/quancha/sameip/detail.php'</span><span> execution timed </span><span class="keyword">out</span><span> (15.129933 sec), terminating&nbsp;&nbsp;</span></span></li><li><span>May 01 10:50:58.045725 [WARNING] [pool www] child 4074 exited on signal 15 SIGTERM after 90.227060 seconds from start&nbsp;&nbsp;</span></li><li class="alt"><span>May 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started&nbsp;&nbsp;</span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">说一千道一万最重要的就是程序里控制好超时，gethostbyname、curl、file_get_contents等函数的都要设置超时时间。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">&nbsp;</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">另一个就是多说，这个东西是增加了网站的交互性，但是使用的多了反应就慢了，如果你网站超时且使用了多说是，可以关闭它。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px;"><span style="color: rgb(0, 0, 255);"><strong><font face="tahoma, arial, 宋体">php-fpm.conf max_children 和 max_requests配置：</font></strong></span></p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px;"><span style="color: rgb(255, 0, 0);">pm = static</span></p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px;">假如使用静态 pm.max_children这个参数会起作用，其余不会。动态反之。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px;">2G内存pm.max_children大概开启50左右，按照实际情况来调优，这个是很必要的。</p><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px;">========================================================</p><p style="margin: 5px auto; overflow-x: auto; color: rgb(17, 17, 17); font-family: &quot;HanHei SC&quot;, &quot;PingFang SC&quot;, &quot;Helvetica Neue&quot;, Helvetica, STHeitiSC-Light, Arial, sans-serif;">max_children是PHP-FPM Pool 最大的子进程数,他数值取决于你的服务器内存。 假设你打算给10G内存给当前配置的PHP-FPM Pool，一般一个PHP请求占用内存10M-40M，我们按站点每个PHP请求占用内存25M，这样max_children = 10G/25M = 409。所以，这个值可以根据情况算出来</p><p style="margin: 5px auto; overflow-x: auto; color: rgb(17, 17, 17); font-family: &quot;HanHei SC&quot;, &quot;PingFang SC&quot;, &quot;Helvetica Neue&quot;, Helvetica, STHeitiSC-Light, Arial, sans-serif;">max_requests是每个子进程重生之前处理的请求数， 默认值为unlimited（默认为1024），可以设置小一点（如500左右），这样可以避免内存泄露带来的问题</p><p style="margin: 5px auto; overflow-x: auto; color: rgb(17, 17, 17); font-family: &quot;HanHei SC&quot;, &quot;PingFang SC&quot;, &quot;Helvetica Neue&quot;, Helvetica, STHeitiSC-Light, Arial, sans-serif;">Nginx代理过程，将业务服务器请求数据缓存到本地文件，再将文件数据转发给请求客户端。高并发的客户端请求，必然要求服务器文件句柄的并发打开限制。使用ulimit命令（ulimit -n），查看Linux系统文件句柄并发限制，默认是1024，我们可以改为65535（2 的 16 次方，这是系统端口的极限）。修改的方法为：修改系统文件/etc/security/limits.conf，添加如下信息，并重新启动系统生效。</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>*&nbsp;soft&nbsp;&nbsp;&nbsp;nofile&nbsp;&nbsp;65535&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>*&nbsp;hard&nbsp;&nbsp;&nbsp;nofile&nbsp;&nbsp;65535&nbsp;&nbsp;</span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;"><span style="color: rgb(17, 17, 17); font-family: &quot;HanHei SC&quot;, &quot;PingFang SC&quot;, &quot;Helvetica Neue&quot;, Helvetica, STHeitiSC-Light, Arial, sans-serif;">然后在Nginx配置文件中，把文件限制及连接数信息改为65535：</span></p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>worker_rlimit_nofile&nbsp;65535;&nbsp;&nbsp;</span></span></li><li><span>events&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;epoll;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;worker_connections&nbsp;&nbsp;65535;&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;&nbsp;&nbsp;</span></li></ol></div><p style="margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; font-family: tahoma, arial, 宋体;">&nbsp;</p>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/nginx_rewrite/</link>
<title><![CDATA[NGINX 重写规则]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Fri, 11 Nov 2016 04:06:04 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/nginx_rewrite/</guid> 
<description>
<![CDATA[ 
	<p>nginx rewrite 实现二级域名跳转</p><div>当访问http://abc.test.com跳转到http://www.test.com/test/abc/</div><div>方法一:</div><div>这种方法浏览器地址会变www.test.com/test/abc</div><div>实现访问如下:</div><div>server &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; listen 80;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; server_name www.test.com;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; location / &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; root /data/test;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; index index.html;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &#125;&nbsp;</div><div>&#125;&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>server &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; listen 80;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; server_name *.test.com;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if ( $http_host ~* &quot;^(.*)&#92;.test&#92;.com$&quot;) &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set $domain $1;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rewrite ^(.*) http://www.test.com/test/$domain/ break;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &#125;&nbsp;</div><div>&#125;</div><div>方法二、</div><div>&nbsp;</div><div>当访问http://abc.test.com跳转到http://www.test.com/test/abc/</div><div>server &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; listen 80;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; server_name *.test.com;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; root /usr/local/www;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; #这是里可以加多个目录,如果不加目录，会无法访问到abc.test.com/目录下的文件,如图片目录/images</div><div>&nbsp; &nbsp; &nbsp; &nbsp; location ~ ^/(test&#124;images&#124;styles)/&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_redirect &nbsp; &nbsp; &nbsp; &nbsp;off;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header &nbsp; &nbsp;Host &nbsp; www.test.com;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass &nbsp; &nbsp; &nbsp;http://192.168.1.2:8080;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &#125;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; location / &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set $domain default;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $http_host ~* &quot;^(.*)&#92;.test&#92;.com$&quot;) &#123;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set $domain $1;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rewrite ^/(.*) &nbsp; &nbsp;/test/$domain/$1 last;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &#125;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; access_log off;</div><div>&#125;</div><div>&nbsp;</div><div>rewrite命令</div><div>nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用)，它可以用在server,location 和IF条件判断块中,命</div><div>&nbsp;</div><div>令格式如下：</div><div>rewrite 正则表达式 替换目标 flag标记</div><div>flag标记可以用以下几种格式：</div><div>last - 基本上都用这个Flag。</div><div>break - 中止Rewirte，不在继续匹配</div><div>redirect - 返回临时重定向的HTTP状态302</div><div>permanent - 返回永久重定向的HTTP状态301</div><div>例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中对应的字符串：</div><div>&nbsp;</div><div>location /download/ &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; rewrite ^(/download/.*)/m/(.*)&#92;..*$ $1/nginx-rewrite/$2.gz break;</div><div>&#125;</div><div>&nbsp;</div><div>nginx重定向的IF条件判断</div><div>在server和location两种情况下可以使用nginx的IF条件判断，条件可以为以下几种：</div><div>正则表达式</div><div>&nbsp;</div><div>如：</div><div>匹配判断</div><div>~ 为区分大小写匹配; !~为区分大小写不匹配</div><div>~* 为不区分大小写匹配；!~为不区分大小写不匹配</div><div>&nbsp;</div><div>就是当用户输入 www.a.com.cn 自动跳转到www.a.com 这个域名：</div><div>&nbsp;</div><div>rewrite ^/(.*)$ http://www.a.com/$1 permanent; 或者cname</div><div>例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下：</div><div>if ($http_user_agent ~ MSIE) &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; rewrite ^(.*)$ /nginx-ie/$1 break;</div><div>&#125;</div><div>文件和目录判断</div><div>-f和!-f判断是否存在文件</div><div>-d和!-d判断是否存在目录</div><div>-e和!-e判断是否存在文件或目录</div><div>-x和!-x判断文件是否可执行</div><div>&nbsp;</div><div>例如下面设定nginx在文件和目录不存在的时候重定向：</div><div>if (!-e $request_filename) &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http://127.0.0.1;</div><div>&#125;</div><div>&nbsp;</div><div>return</div><div>返回http代码，例如设置nginx防盗链：</div><div>location ~* &#92;.(gif&#124;jpg&#124;png&#124;swf&#124;flv)$ &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; valid_referers none blocked www.jefflei.comwww.leizhenfang.com;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if ($invalid_referer) &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 404;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div>&#125;</div><div>&nbsp;</div><div>记一正则，匹配非某单词</div><div>由于要rewrite一个地址从</div><div>/mag/xx/xxx/ -&gt; /m/xxx</div><div>但原先 /mag/xx/more/ 要保留</div><div>这就得写一个比较奇特的正则了，尝试了比较多的写法也没成功</div><div>&nbsp;</div><div>最先想的是：</div><div>&nbsp;</div><div>location ~* ^/mag/[^/]+/[^(more)]+/ &#123;</div><div>&nbsp; rewrite ^/mag/[^/]+/(.*) /m/$1 permanent;</div><div>&#125;</div><div>&nbsp;</div><div>&nbsp;</div><div>[]的写法并不凑效，里面是匹配单个字符的，这样无效，匹配不了</div><div>&nbsp;</div><div>还是小范同学不错，研究的深入，提供了非某单词的写法 (?!more)</div><div>&nbsp;</div><div>location ~* ^/mag/[^/]+/(?!more)([^/]+)/ &#123;</div><div>&nbsp; rewrite ^/mag/[^/]+/(.*) /m/$1 permanent;</div><div>&#125;</div><div>&nbsp;</div><div>&nbsp;</div><div>这个写法勉强可以应付了，后面的匹配单元虽说还不完美，但也能够对付我的所有需求内容了。</div><div>有需要的可以参考此写法。</div><div>&nbsp;</div><div>引用</div><div>&nbsp;</div><div>常用分组语法</div><div>&nbsp;</div><div>捕获</div><div>(exp) 匹配exp,并捕获文本到自动命名的组里&nbsp;</div><div>(?exp) 匹配exp,并捕获文本到名称为name的组里，也可以写成(?'name'exp)&nbsp;</div><div>(?:exp) 匹配exp,不捕获匹配的文本，也不给此分组分配组号&nbsp;</div><div>&nbsp;</div><div>零宽断言&nbsp;</div><div>(?=exp) 匹配exp前面的位置&nbsp;</div><div>(?&lt;=exp) 匹配exp后面的位置&nbsp;</div><div>(?!exp) 匹配后面跟的不是exp的位置&nbsp;</div><div>(?</div><div>为何要使用301重定向</div><div>在网站建设中需要网页重定向的情况很多：如网页目录结构变动，网页重命名、网页的扩展名改变、网站域名改变等。如果不做重 定向，用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面，访问流量白白丧失。不仅如此，之前该页面的一切积累（比如PR值）就 都白费了。</div><div>301重定向不仅能使页面实现自动跳转，对于搜索引擎来说，也可能可以传递PR值。</div><div>nginx重定向规则详细介绍</div><div>http://www.jefflei.com/post/1015.html</div><div>rewrite命令</div><div>nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用)，它可以用在server,location 和IF条件判断块中,命令格式如下：</div><div>rewrite 正则表达式 替换目标 flag标记</div><div>flag标记可以用以下几种格式：</div><div>last &ndash; 基本上都用这个Flag。</div><div>break &ndash; 中止Rewirte，不在继续匹配</div><div>redirect &ndash; 返回临时重定向的HTTP状态302</div><div>permanent &ndash; 返回永久重定向的HTTP状态301</div><div>例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中对应的字符串：</div><div>location /download/ &#123;</div><div>rewrite ^(/download/.*)/m/(.*)&#92;..*$ $1/nginx-rewrite/$2.gz break;</div><div>&#125;</div><div>nginx重定向的IF条件判断</div><div>在server和location两种情况下可以使用nginx的IF条件判断，条件可以为以下几种：</div><div>正则表达式</div><div>如：</div><div>匹配判断</div><div>~ &nbsp;为区分大小写匹配; !~为区分大小写不匹配</div><div>&nbsp;~* 为不区分大小写匹配；!~为不区分大小写不匹配</div><div>例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下：</div><div>if ($http_user_agent ~ MSIE) &#123;</div><div>rewrite ^(.*)$ /nginx-ie/$1 break;</div><div>&#125;</div><div>文件和目录判断</div><div>&nbsp; -f和!-f判断是否存在文件</div><div>&nbsp;-d和!-d判断是否存在目录</div><div>&nbsp;-e和!-e判断是否存在文件或目录</div><div>&nbsp;-x和!-x判断文件是否可执行</div><div>例如下面设定nginx在文件和目录不存在的时候重定向：</div><div>if (!-e $request_filename) &#123;</div><div>proxy_pass http://127.0.0.1/;</div><div>&#125;</div><div>return</div><div>返回http代码，例如设置nginx防盗链：</div><div>location ~* &#92;.(gif&#124;jpg&#124;png&#124;swf&#124;flv)$ &#123;</div><div>valid_referers none blocked http://www.jefflei.com/ http://www.leizhenfang.com/;</div><div>if ($invalid_referer) &#123;</div><div>return 404;</div><div>&#125;</div><div>&#125;</div><div>set</div><div>设置nginx变量</div><div>&nbsp;</div><div>301重定向方法</div><div>进行了301重定向，把www .jefflei.com和jefflei.com合并，并把之前的域名也一并合并. 有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host)：</div><div>server &#123;</div><div>server_name www.jefflei.com jefflei.com ;</div><div>if ($host != 'www.jefflei.com' ) &#123;</div><div>rewrite ^/(.*)$ http://www.jefflei.com/$1 permanent;</div><div>&#125;</div><div>...</div><div>&#125;</div><div>第二种方法：</div><div>server &#123;</div><div>server_name jefflei.com;</div><div>rewrite ^/(.*) http://www.jefflei.com/$1 permanent;</div><div>&#125;</div><div>测试了第一种方法ok，这两种方法中， permanent是关键，详细说明见nginx重定向规则说明。</div><div>last &ndash; 基本上都用这个Flag。</div><div>break &ndash; 中止Rewirte，不在继续匹配</div><div>redirect &ndash; 返回临时重定向的HTTP状态302</div><div>permanent &ndash; 返回永久重定向的HTTP状态301</div><div>好了,现在可以检查结果，这里可以看返回的HTTP头信息：</div><div>http://www.seoconsultants.com/tools/headers.asp</div><div>第二种方法没有测试成功...</div><div>&nbsp;</div><div>测试是否定向成功</div><div>http://qinfy.net/301-redirect-for-nginx/</div><div>输入指令~</div><div>/usr/local/nginx/sbin/nginx -t</div><div>提示：</div><div>the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok</div><div>configuration file /usr/local/nginx/conf/nginx.conf test is successful</div><div>测试成功~ 重启nginx~ 输入指令~</div><div>/usr/local/nginx/sbin/nginx -s reload</div><div>重启之后测试一下~是否成功设定完成！ 输入指令~</div><div>curl -I imcat.tk</div><div>&nbsp;</div><div>会输出：</div><div>HTTP/1.1 301 Moved Permanently</div><div>Server: nginx/0.7.65</div><div>Date: Tue, 03 Aug 2010 01:12:37 GMT</div><div>Content-Type: text/html</div><div>Content-Length: 185</div><div>Connection: keep-alive</div><div>Location: http://qinfy.net/</div><div>nginx rewrite 伪静态配置参数详细说明（转）</div><div>http://hi.baidu.com/hx10/blog/item/942a0ad784f3ffd0a144df94.html</div><div>nginx rewrite 伪静态配置参数和使用例子 附正则使用说明</div><div>正则表达式匹配，其中：</div><div>* ~ 为区分大小写匹配&nbsp;</div><div>* ~* 为不区分大小写匹配&nbsp;</div><div>* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配</div><div>&nbsp;</div><div>文件及目录匹配，其中：</div><div>* -f和!-f用来判断是否存在文件&nbsp;</div><div>* -d和!-d用来判断是否存在目录&nbsp;</div><div>* -e和!-e用来判断是否存在文件或目录&nbsp;</div><div>* -x和!-x用来判断文件是否可执行</div><div>flag标记有：</div><div>* last 相当于Apache里的[L]标记，表示完成rewrite&nbsp;</div><div>* break 终止匹配, 不再匹配后面的规则&nbsp;</div><div>* redirect 返回302临时重定向 地址栏会显示跳转后的地址&nbsp;</div><div>* permanent 返回301永久重定向 地址栏会显示跳转后的地址</div><div>一些可用的全局变量有，可以用做条件判断(待补全)</div><div>$args&nbsp;</div><div>$content_length&nbsp;</div><div>$content_type&nbsp;</div><div>$document_root&nbsp;</div><div>$document_uri&nbsp;</div><div>$host&nbsp;</div><div>$http_user_agent&nbsp;</div><div>$http_cookie&nbsp;</div><div>$limit_rate&nbsp;</div><div>$request_body_file&nbsp;</div><div>$request_method&nbsp;</div><div>$remote_addr&nbsp;</div><div>$remote_port&nbsp;</div><div>$remote_user&nbsp;</div><div>$request_filename&nbsp;</div><div>$request_uri&nbsp;</div><div>$query_string&nbsp;</div><div>$scheme&nbsp;</div><div>$server_protocol&nbsp;</div><div>$server_addr&nbsp;</div><div>$server_name&nbsp;</div><div>$server_port&nbsp;</div><div>$uri</div><div>结合QeePHP的例子</div><div>if (!-d $request_filename) &#123;&nbsp;</div><div>rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&amp;controller=$1&amp;action=$2&amp;$3 last;&nbsp;</div><div>rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&amp;controller=$1 last;&nbsp;</div><div>break;</div><div>多目录转成参数</div><div>abc.domian.com/sort/2 =&gt; abc.domian.com/index.php?act=sort&amp;name=abc&amp;id=2</div><div>if ($host ~* (.*)&#92;.domain&#92;.com) &#123;&nbsp;</div><div>set $sub_name $1;&nbsp;</div><div>rewrite ^/sort&#92;/(&#92;d+)&#92;/?$ /index.php?act=sort&amp;cid=$sub_name&amp;id=$1 last;&nbsp;</div><div>&#125;</div><div>目录对换</div><div>/123456/xxxx -&gt; /xxxx?id=123456</div><div>rewrite ^/(&#92;d+)/(.+)/ /$2?id=$1 last;</div><div>例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下：</div><div>if ($http_user_agent ~ MSIE) &#123;&nbsp;</div><div>rewrite ^(.*)$ /nginx-ie/$1 break;&nbsp;</div><div>&#125;</div><div>目录自动加&ldquo;/&rdquo;</div><div>if (-d $request_filename)&#123;&nbsp;</div><div>rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;&nbsp;</div><div>&#125;</div><div>禁止htaccess</div><div>location ~/&#92;.ht &#123;&nbsp;</div><div>deny all;&nbsp;</div><div>&#125;</div><div>禁止多个目录</div><div>location ~ ^/(cron&#124;templates)/ &#123;&nbsp;</div><div>deny all;&nbsp;</div><div>break;&nbsp;</div><div>&#125;</div><div>禁止以/data开头的文件</div><div>可以禁止/data/下多级目录下.log.txt等请求;</div><div>location ~ ^/data &#123;&nbsp;</div><div>deny all;&nbsp;</div><div>&#125;</div><div>禁止单个目录</div><div>不能禁止.log.txt能请求</div><div>location /searchword/cron/ &#123;&nbsp;</div><div>deny all;&nbsp;</div><div>&#125;</div><div>禁止单个文件</div><div>location ~ /data/sql/data.sql &#123;&nbsp;</div><div>deny all;&nbsp;</div><div>&#125;</div><div>给favicon.ico和robots.txt设置过期时间;</div><div>这里为favicon.ico为99 天,robots.txt为7天并不记录404错误日志</div><div>location ~(favicon.ico) &#123;&nbsp;</div><div>log_not_found off;&nbsp;</div><div>expires 99d;&nbsp;</div><div>break;&nbsp;</div><div>&#125;&nbsp;</div><div>&nbsp;</div><div>location ~(robots.txt) &#123;&nbsp;</div><div>log_not_found off;&nbsp;</div><div>expires 7d;&nbsp;</div><div>break;&nbsp;</div><div>&#125;</div><div>设定某个文件的过期时间;这里为600秒，并不记录访问日志</div><div>location ^~ /html/scripts/loadhead_1.js &#123;&nbsp;</div><div>access_log off;&nbsp;</div><div>root /opt/lampp/htdocs/web;&nbsp;</div><div>expires 600;&nbsp;</div><div>break;&nbsp;</div><div>&#125;</div><div>文件反盗链并设置过期时间</div><div>这里的return 412 为自定义的http状态码，默认为403，方便找出正确的盗链的请求</div><div>&ldquo;rewrite ^/ http://leech.c1gstudio.com/leech.gif;&rdquo;显示一张防盗链图片</div><div>&ldquo;access_log off;&rdquo;不记录访问日志，减轻压力</div><div>&ldquo;expires 3d&rdquo;所有文件3天的浏览器缓存</div><div>location ~* ^.+&#92;.(jpg&#124;jpeg&#124;gif&#124;png&#124;swf&#124;rar&#124;zip&#124;css&#124;js)$ &#123;&nbsp;</div><div>valid_referers none blocked *.c1gstudio.com *.c1gstudio.net localhost 208.97.167.194;&nbsp;</div><div>if ($invalid_referer) &#123;&nbsp;</div><div>rewrite ^/ http://leech.c1gstudio.com/leech.gif;&nbsp;</div><div>return 412;&nbsp;</div><div>break;&nbsp;</div><div>&#125;&nbsp;</div><div>access_log off;&nbsp;</div><div>root /opt/lampp/htdocs/web;&nbsp;</div><div>expires 3d;&nbsp;</div><div>break;&nbsp;</div><div>&#125;</div><div>只充许固定ip访问网站，并加上密码</div><div>root /opt/htdocs/www;&nbsp;</div><div>allow 208.97.167.194;&nbsp;</div><div>allow 222.33.1.2;&nbsp;</div><div>allow 231.152.49.4;&nbsp;</div><div>deny all;&nbsp;</div><div>auth_basic &quot;C1G_ADMIN&quot;;&nbsp;</div><div>auth_basic_user_file htpasswd;</div><div>将多级目录下的文件转成一个文件，增强seo效果</div><div>/job-123-456-789.html 指向/job/123/456/789.html</div><div>rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+)&#92;.html$ /job/$1/$2/jobshow_$3.html last;</div><div>将根目录下某个文件夹指向2级目录</div><div>如/shanghaijob/ 指向 /area/shanghai/</div><div>如果你将last改成permanent，那么浏览器地址栏显是 /location/shanghai/</div><div>rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;</div><div>上面例子有个问题是访问/shanghai 时将不会匹配</div><div>rewrite ^/([0-9a-z]+)job$ /area/$1/ last;&nbsp;</div><div>rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;</div><div>这样/shanghai 也可以访问了，但页面中的相对链接无法使用，</div><div>如./list_1.html真实地址是/area /shanghia/list_1.html会变成/list_1.html,导至无法访问。</div><div>那我加上自动跳转也是不行咯</div><div>(-d $request_filename)它有个条件是必需为真实目录，而我的rewrite不是的，所以没有效果</div><div>if (-d $request_filename)&#123;&nbsp;</div><div>rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;&nbsp;</div><div>&#125;</div><div>知道原因后就好办了，让我手动跳转吧</div><div>rewrite ^/([0-9a-z]+)job$ /$1job/ permanent;&nbsp;</div><div>rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;</div><div>文件和目录不存在的时候重定向：</div><div>if (!-e $request_filename) &#123;&nbsp;</div><div>proxy_pass http://127.0.0.1/;&nbsp;</div><div>&#125;</div><div>域名跳转</div><div>server&nbsp;</div><div>&#123;&nbsp;</div><div>listen 80;&nbsp;</div><div>server_name jump.c1gstudio.com;&nbsp;</div><div>index index.html index.htm index.php;&nbsp;</div><div>root /opt/lampp/htdocs/www;&nbsp;</div><div>rewrite ^/ http://www.c1gstudio.com/;&nbsp;</div><div>access_log off;&nbsp;</div><div>&#125;</div><div>多域名转向</div><div>server_name http://www.c1gstudio.com/ http://www.c1gstudio.net/;&nbsp;</div><div>index index.html index.htm index.php;&nbsp;</div><div>root /opt/lampp/htdocs;&nbsp;</div><div>if ($host ~ &quot;c1gstudio&#92;.net&quot;) &#123;&nbsp;</div><div>rewrite ^(.*) http://www.c1gstudio.com$1/ permanent;&nbsp;</div><div>&#125;</div><div>三级域名跳转</div><div>if ($http_host ~* &quot;^(.*)&#92;.i&#92;.c1gstudio&#92;.com$&quot;) &#123;&nbsp;</div><div>rewrite ^(.*) http://top.yingjiesheng.com$1/;&nbsp;</div><div>break;&nbsp;</div><div>&#125;</div><div>域名镜向</div><div>server&nbsp;</div><div>&#123;&nbsp;</div><div>listen 80;&nbsp;</div><div>server_name mirror.c1gstudio.com;&nbsp;</div><div>index index.html index.htm index.php;&nbsp;</div><div>root /opt/lampp/htdocs/www;&nbsp;</div><div>rewrite ^/(.*) http://www.c1gstudio.com/$1 last;&nbsp;</div><div>access_log off;&nbsp;</div><div>&#125;</div><div>某个子目录作镜向</div><div>location ^~ /zhaopinhui &#123;&nbsp;</div><div>rewrite ^.+ http://zph.c1gstudio.com/ last;&nbsp;</div><div>break;&nbsp;</div><div>&#125;</div><div>discuz ucenter home (uchome) rewrite</div><div>rewrite ^/(space&#124;network)-(.+)&#92;.html$ /$1.php?rewrite=$2 last;&nbsp;</div><div>rewrite ^/(space&#124;network)&#92;.html$ /$1.php last;&nbsp;</div><div>rewrite ^/([0-9]+)$ /space.php?uid=$1 last;</div><div>discuz 7 rewrite</div><div>rewrite ^(.*)/archiver/((fid&#124;tid)-[&#92;w&#92;-]+&#92;.html)$ $1/archiver/index.php?$2 last;&nbsp;</div><div>rewrite ^(.*)/forum-([0-9]+)-([0-9]+)&#92;.html$ $1/forumdisplay.php?fid=$2&amp;page=$3 last;&nbsp;</div><div>rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)&#92;.html$ $1/viewthread.php?tid=$2&amp;extra=page&#92;%3D$4&amp;page=$3 last;&nbsp;</div><div>rewrite ^(.*)/profile-(username&#124;uid)-(.+)&#92;.html$ $1/viewpro.php?$2=$3 last;&nbsp;</div><div>rewrite ^(.*)/space-(username&#124;uid)-(.+)&#92;.html$ $1/space.php?$2=$3 last;&nbsp;</div><div>rewrite ^(.*)/tag-(.+)&#92;.html$ $1/tag.php?name=$2 last;</div><div>给discuz某版块单独配置域名</div><div>server_name bbs.c1gstudio.com news.c1gstudio.com;&nbsp;</div><div>&nbsp;</div><div>location = / &#123;&nbsp;</div><div>if ($http_host ~ news&#92;.c1gstudio.com$) &#123;&nbsp;</div><div>rewrite ^.+ http://news.c1gstudio.com/forum-831-1.html last;&nbsp;</div><div>break;&nbsp;</div><div>&#125;&nbsp;</div><div>&#125;</div><div>discuz ucenter 头像 rewrite 优化</div><div>location ^~ /ucenter &#123;&nbsp;</div><div>location ~ .*&#92;.php?$&nbsp;</div><div>&#123;&nbsp;</div><div>#fastcgi_pass unix:/tmp/php-cgi.sock;&nbsp;</div><div>fastcgi_pass 127.0.0.1:9000;&nbsp;</div><div>fastcgi_index index.php;&nbsp;</div><div>include fcgi.conf;&nbsp;</div><div>&#125;&nbsp;</div><div>&nbsp;</div><div>location /ucenter/data/avatar &#123;&nbsp;</div><div>log_not_found off;&nbsp;</div><div>access_log off;&nbsp;</div><div>location ~ /(.*)_big&#92;.jpg$ &#123;&nbsp;</div><div>error_page 404 /ucenter/images/noavatar_big.gif;&nbsp;</div><div>&#125;&nbsp;</div><div>location ~ /(.*)_middle&#92;.jpg$ &#123;&nbsp;</div><div>error_page 404 /ucenter/images/noavatar_middle.gif;&nbsp;</div><div>&#125;&nbsp;</div><div>location ~ /(.*)_small&#92;.jpg$ &#123;&nbsp;</div><div>error_page 404 /ucenter/images/noavatar_small.gif;&nbsp;</div><div>&#125;&nbsp;</div><div>expires 300;&nbsp;</div><div>break;&nbsp;</div><div>&#125;&nbsp;</div><div>&#125;</div><div>jspace rewrite</div><div>location ~ .*&#92;.php?$&nbsp;</div><div>&#123;&nbsp;</div><div>#fastcgi_pass unix:/tmp/php-cgi.sock;&nbsp;</div><div>fastcgi_pass 127.0.0.1:9000;&nbsp;</div><div>fastcgi_index index.php;&nbsp;</div><div>include fcgi.conf;&nbsp;</div><div>&#125;&nbsp;</div><div>&nbsp;</div><div>location ~* ^/index.php/&nbsp;</div><div>&#123;&nbsp;</div><div>rewrite ^/index.php/(.*) /index.php?$1 break;&nbsp;</div><div>fastcgi_pass 127.0.0.1:9000;&nbsp;</div><div>fastcgi_index index.php;&nbsp;</div><div>include fcgi.conf;&nbsp;</div><div>&#125;</div><br/>Tags - <a href="http://liuxinxiu.com:80/tags/nginx/" rel="tag">nginx</a> , <a href="http://liuxinxiu.com:80/tags/rewrite/" rel="tag">rewrite</a>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/s/249/</link>
<title><![CDATA[Nginx 静态文件缓存相关配置]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Sun, 18 Sep 2016 08:43:42 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/s/249/</guid> 
<description>
<![CDATA[ 
	<div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>location&nbsp;~&nbsp;&#92;.(&nbsp;html&#124;js&#124;css&#124;png&#124;gif&#124;jpg&#124;jpeg&#124;bmp&#124;swf)$&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;#如果后端的服务器返回502、504、执行超时等错误，自动将请求转发到&nbsp;upstream负载均衡池中的另一台服务器，实现故障转移</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_next_upstream&nbsp;http_502&nbsp;http_504&nbsp;error&nbsp;timeout&nbsp;invalid_header;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache&nbsp;cache_one;&nbsp;&nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;#对不同的HTTP状态码设置不同的缓存时间</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache_valid&nbsp;200&nbsp;10m;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache_valid&nbsp;304&nbsp;1m;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache_valid&nbsp;301&nbsp;302&nbsp;1h;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache_valid&nbsp;any&nbsp;1m;&nbsp;&nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;#以域名、URI、参数组合成Web缓存的Key值，Nginx根据Key值哈希</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache_key&nbsp;$host$uri$is_args$args;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Host&nbsp;$host;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-Forwarded-For&nbsp;$remote_addr;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;#如果没有缓存则通过proxy_pass转向tomcat请求</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;http:<span class="comment">//tomcat_server_pool;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;&nbsp;&nbsp;</span></li></ol></div><br/>Tags - <a href="http://liuxinxiu.com:80/tags/nginx/" rel="tag">nginx</a> , <a href="http://liuxinxiu.com:80/tags/proxy_cache/" rel="tag">proxy cache</a>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/Nginx_upstream/</link>
<title><![CDATA[Nginx upstream 相关配置]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Fri, 16 Sep 2016 12:15:58 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/Nginx_upstream/</guid> 
<description>
<![CDATA[ 
	<p>Nginx_upstream实现：设置备份主机及过滤HTTP错误自动切除[8000=&gt;Node服务器 &#124;&#124; 2000=&gt;默认错误处理页]：</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="preprocessor">#集群中的所有后台服务器的配置信息</span><span>&nbsp;&nbsp;</span></span></li><li><span>upstream&nbsp;nodeJs&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;#server&nbsp;123.56.233.208&nbsp;weight=10;</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;#server&nbsp;127.0.0.1:3000&nbsp;weight=10;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;127.0.0.1:8000;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;127.0.0.1:2000&nbsp;backup;&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;&nbsp;&nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span><span class="preprocessor">#调用所有的Server配置文件</span><span>&nbsp;&nbsp;</span></span></li><li><span>include&nbsp;/usr/local/nginx/conf/vhosts/*.conf;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>server&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;3000;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;liuxinxiu.com;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;add_header&nbsp;Proxy-By&nbsp;$upstream_http_server;&nbsp;#代理服务器Server&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;/&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;http:<span class="comment">//nodeJs;&nbsp;#反向代理到后端Server</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Host&nbsp;$host:3000;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-Real-IP&nbsp;$remote_addr;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-Forwarded-For&nbsp;$proxy_add_x_forwarded_for;&nbsp;&nbsp;</span></li><li class="alt"><span><span class="preprocessor">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#proxy_next_upstream&nbsp;error&nbsp;timeout&nbsp;invalid_header&nbsp;http_403&nbsp;http_404;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li class="alt"><span>&#125; &nbsp;</span></li></ol></div><p>Nginx=&gt;2000端口默认错误处理页(相关配置)：</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>server&#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp; listen 2000;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; server_name&nbsp;&nbsp;127.0.0.1;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp; index index.html index.htm index.php;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; root&nbsp;&nbsp;/ftp/www/2000;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; error_page&nbsp;&nbsp;404&nbsp;&nbsp;/index.html;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;&nbsp;&nbsp;</span></li></ol></div><p>&nbsp;</p><br/>Tags - <a href="http://liuxinxiu.com:80/tags/upstream/" rel="tag">upstream</a> , <a href="http://liuxinxiu.com:80/tags/nginx/" rel="tag">nginx</a>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/Nginx_413_Request/</link>
<title><![CDATA[NGINX 413 解决方法]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Wed, 14 Oct 2015 09:14:53 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/Nginx_413_Request/</guid> 
<description>
<![CDATA[ 
	<div>413 Request Entity Too Large</div><div>NGINX报出413错误是因请求body体上传文件过大导致，修改nginx.conf，在http&#123;&#125; 内部加入以下即可：</div><div><span style="color: rgb(255, 0, 0);">client_max_body_size 64M</span>; #body体力最大上传大小，具体多少M根据实际情况填写</div>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/Nginx_Post_Size/</link>
<title><![CDATA[Nginx Post最大提交数据限制]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Wed, 13 May 2015 12:39:04 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/Nginx_Post_Size/</guid> 
<description>
<![CDATA[ 
	<p>原以为是php本身的限制，查看配置文件无论是POST还是单个文件上传都满足要求：</p><p>#post最大提交量</p><p>post_max_size = 8M</p><p>#php给个文件最大限制</p><p>upload_max_filesize = 2M</p><p>************************************************************************</p><p>NGINX错误日志显示：</p><p>Nginx 【client intended to send too large body: 1065755 bytes】</p><p><a href="http://at.liuxinxiu.com/2015/05/image/nginx_error_log.png" target="_blank"><img src="http://at.liuxinxiu.com/2015/05/image/nginx_error_log.png" alt="http://at.liuxinxiu.com/2015/05/image/nginx_error_log.png" width="720" height="78" /></a></p><p>在Nginx.conf文件中添加：</p><p>client_max_body_size 64M; #多少M根据实际情况填写</p><p>重启即可！</p>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/resin/</link>
<title><![CDATA[resin服务管理]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Mon, 09 Mar 2015 09:32:44 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/resin/</guid> 
<description>
<![CDATA[ 
	<p>重启服务 <span style="color: rgb(0, 0, 255);"><strong>&nbsp;sh /usr/local/resin/bin/resin.sh -server youyuan restart</strong></span></p><p>查看日志</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>root@pts/4&nbsp;#&nbsp;tail&nbsp;-f&nbsp;/usr/local/resin/log/jvm-y&nbsp;&nbsp;</span></span></li><li><span>jvm-youyuan.log&nbsp;&nbsp;jvm-yylc.log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li class="alt"><span>192.168.3.150&nbsp;[/www/www.youyuan.com/web/WEB-INF/classes]&nbsp;2015-03-09&nbsp;17:27:20&nbsp;&nbsp;</span></li><li><span>root@pts/4&nbsp;#&nbsp;tail&nbsp;-f&nbsp;/usr/local/resin/log/jvm-y&nbsp;&nbsp;</span></li><li class="alt"><span>jvm-youyuan.log&nbsp;&nbsp;jvm-yylc.log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li><span>192.168.3.150&nbsp;[/www/www.youyuan.com/web/WEB-INF/classes]&nbsp;2015-03-09&nbsp;17:27:20&nbsp;&nbsp;</span></li><li class="alt"><span>root@pts/4&nbsp;#&nbsp;tail&nbsp;-f&nbsp;/usr/local/resin/log/jvm-youyuan.log&nbsp;&nbsp;&nbsp;</span></li><li><span>Resin-4.0.35&nbsp;(built&nbsp;Tue,&nbsp;12&nbsp;Feb&nbsp;2013&nbsp;10:05:50&nbsp;PST)&nbsp;&nbsp;</span></li><li class="alt"><span>Copyright(c)&nbsp;1998-2012&nbsp;Caucho&nbsp;Technology.&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;Using&nbsp;Resin(R)&nbsp;Open&nbsp;Source&nbsp;under&nbsp;the&nbsp;GNU&nbsp;Public&nbsp;License&nbsp;(GPL).&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;See&nbsp;http:<span class="comment">//www.caucho.com&nbsp;for&nbsp;information&nbsp;on&nbsp;Resin&nbsp;Professional,</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;including&nbsp;caching,&nbsp;clustering,&nbsp;JNI&nbsp;acceleration,&nbsp;and&nbsp;OpenSSL&nbsp;integration.&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>Starting&nbsp;Resin&nbsp;on&nbsp;Mon,&nbsp;09&nbsp;Mar&nbsp;2015&nbsp;17:27:23&nbsp;+0800&nbsp;(CST)&nbsp;&nbsp;</span></li></ol></div><p>&nbsp;</p>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/mod_cband/</link>
<title><![CDATA[linux apache安装mod_cband限制虚拟主机带宽]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Fri, 27 Jun 2014 07:36:43 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/mod_cband/</guid> 
<description>
<![CDATA[ 
	<p>mod_cband是一个限额用户带宽，最高下载速度，每秒访问请求速度和最高并发访问ip连接数的apache2模块。</p><p>1.安装mod_cband如下：</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>wget http:</span><span class="comment">//so.liuxinxiu.com/mod-cband-0.9.7.2.tgz</span><span>&nbsp;&nbsp;</span></span></li><li><span>tar zxvf mod-cband-0.9.7.2.tgz&nbsp;&nbsp; </span></li><li class="alt"><span>cd mod-cband-0.9.7.2&nbsp;&nbsp; </span></li><li><span>./configure --with-apxs=/usr/local/apache/bin/apxs&nbsp;&nbsp; </span></li><li class="alt"><span>make&nbsp;&nbsp; </span></li><li><span>make install&nbsp;&nbsp;</span></li></ol></div><div><div>#####　whereis apxs可以看到你的apxs路径　#####</div><div>如果是yum 安装 httpd 找不到apxs需要单独再安装：<code class="as3 plain" style="border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; background-clip: padding-box; border: 0px !important; float: none !important; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 15px; min-height: inherit !important; -webkit-background-clip: padding-box; "># yum install httpd-devel </code><code class="as3 comments" style="border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; background-clip: padding-box; border: 0px !important; float: none !important; left: auto !important; line-height: 16px; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left; top: auto !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 15px; min-height: inherit !important; -webkit-background-clip: padding-box; color: rgb(0, 130, 0) !important; ">//安装</code></div><div>查看路径：whereis apxs</div><div>&nbsp;</div><div><div>[root@www sbin]# whereis apxs</div><div>apxs: /usr/sbin/apxs /usr/share/man/man8/apxs.8.gz</div></div><div>&nbsp;</div><div>&nbsp;</div><div>2.检查下你的apache配置文件httpd.conf是否加载了</div><div>&nbsp;</div><div>执行以下：</div><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>grep cband /usr/local/apache2/conf/httpd.conf&nbsp;&nbsp;</span></span></li><li class="alt">如果是云安装：</li><li class="alt">grep cband /etc/httpd/conf/httpd.conf</li></ol></div><div><div>&nbsp;</div><div>查看模块有没加载到apache的路径上</div><div><span style="color: rgb(0, 0, 255); ">LoadModulecband_module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modules/mod_cband.so</span></div><div>&nbsp;</div><div>3.配置虚拟主机</div><div>&nbsp;</div><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="preprocessor">#++++++++++默认入口+++++++++++++</span><span>&nbsp;&nbsp;</span></span></li><li><span> </span></li><li class="alt"><span><span class="preprocessor">#&lt;VirtualHost *:80&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="preprocessor">#&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot /usr/local/apache/htdocs</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="preprocessor">#&nbsp;&nbsp;&nbsp;&nbsp;ServerName 192.168.1.233</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="preprocessor">#&lt;/VirtualHost&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&lt;VirtualHost *:80&gt;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; ServerName 192.168.1.233&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp; ServerAdmin admin@liuxinxiu.com&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; DocumentRoot /usr/local/apache/htdocs&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp; CBandSpeed 1024 100 30&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; CBandRemoteSpeed 50kb/s 5 3&nbsp;&nbsp;</span></li><li><span>&lt;/VirtualHost&gt;&nbsp;&nbsp;</span></li></ol></div><div>说明：</div><div>&nbsp;</div><div><div>CBandSpeed 1024 100 30 #CBandSpeed限定总的最大链接速度为1024kb,最多并发处理100个请求和30个链接</div><div>CBandRemoteSpeed 50kb/s 5 3 #CBandRemoteSpeed限定一个用户最多能有50kb的链接速度,最多并发5个请求和3个链接</div></div></div></div><p>&nbsp;</p>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/Apache_list/</link>
<title><![CDATA[开启/订制Apache目录列表样式]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Tue, 14 Jan 2014 10:00:55 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/Apache_list/</guid> 
<description>
<![CDATA[ 
	<p>开启Apache目录列表：</p><p>首先找到/usr/local/apache/conf/httpd.conf 文件搜索</p><p>#Include conf/extra/httpd-autoindex.conf (去掉注释# 启用)</p><p>修改/usr/local/apache/conf/extra/httpd-autoindex.conf</p><p>注释掉：<span style="color: rgb(0, 0, 255);">#</span>IndexOptions FancyIndexing HTMLTable VersionSort</p><p>启用：indexOptions FancyIndexing ScanHTMLTitles NameWidth=128 DescriptionWidth=256 HTMLTable VersionSort FoldersFirst</p><p>#######################################################################</p><p>之后遇到Apache列表索引中文乱码问，在httpd-autoindex.conf文件中添加：<span style="color: rgb(255, 255, 255);"><span style="background-color: rgb(255, 0, 0);">Charset=GBK</span></span></p><p>indexOptions <span style="color: rgb(255, 0, 0);">Charset=GBK</span> FancyIndexing ScanHTMLTitles NameWidth=128 DescriptionWidth=256 HTMLTable VersionSort FoldersFirst</p><p>重启Apache问题解决～</p><p>虚拟主机配置处添加：</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>&lt;Directory </span><span class="string">&quot;/data/web_bk&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp; Options Indexes FollowSymLinks&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; AllowOverride All&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp; Order allow,deny&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; Order deny,allow&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp; Allow from all&nbsp;&nbsp;</span></li><li class="alt"><span>&lt;/Directory&gt;&nbsp;&nbsp;</span></li></ol></div><p>&nbsp;Apache 配置显示版本信息：</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="preprocessor">###########&nbsp;Add&nbsp;##############</span><span>&nbsp;&nbsp;</span></span></li><li><span>AddDefaultCharset&nbsp;GBK&nbsp;&nbsp;</span></li><li class="alt"><span>ServerSignature&nbsp;On&nbsp;&nbsp;</span></li><li><span><span class="preprocessor">###########&nbsp;Add&nbsp;##############</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>Include&nbsp;shost/*.conf&nbsp;&nbsp;</span></li></ol></div><p>&nbsp;</p>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/discus_Rewrite/</link>
<title><![CDATA[设置Discuz论坛伪静态]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Tue, 14 Jan 2014 09:06:29 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/discus_Rewrite/</guid> 
<description>
<![CDATA[ 
	<p>把下面代码添加到：</p><p>&lt;VirtualHost *:80&gt;</p><p>&nbsp; &nbsp; DocumentRoot /data/web_bk/bbs.XXXnet/htdocs</p><p>&nbsp; &nbsp; ServerName bbs.XXX.net</p><p>&lt;Directory &quot;/data/web_bk/bbs.3snews.net/htdocs&quot;&gt;</p><p>这里.....</p><p>&lt;/Directory&gt;</p><p>&lt;/VirtualHost&gt;</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="preprocessor">#&nbsp;将&nbsp;RewriteEngine&nbsp;模式打开</span><span>&nbsp;&nbsp;</span></span></li><li><span>RewriteEngine&nbsp;On&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span><span class="preprocessor">#&nbsp;Rewrite&nbsp;系统规则请勿修改</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^topic-(.+)&#92;.html$&nbsp;portal.php?mod=topic&amp;topic=$1&amp;%1&nbsp;&nbsp;</span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^article-([0-9]+)-([0-9]+)&#92;.html$&nbsp;portal.php?mod=view&amp;aid=$1&amp;page=$2&amp;%1&nbsp;&nbsp;</span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^forum-(&#92;w+)-([0-9]+)&#92;.html$&nbsp;forum.php?mod=forumdisplay&amp;fid=$1&amp;page=$2&amp;%1&nbsp;&nbsp;</span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^thread-([0-9]+)-([0-9]+)-([0-9]+)&#92;.html$&nbsp;forum.php?mod=viewthread&amp;tid=$1&amp;extra=page&#92;%3D$3&amp;page=$2&amp;%1&nbsp;&nbsp;</span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^group-([0-9]+)-([0-9]+)&#92;.html$&nbsp;forum.php?mod=group&amp;fid=$1&amp;page=$2&amp;%1&nbsp;&nbsp;</span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^space-(username&#124;uid)-(.+)&#92;.html$&nbsp;home.php?mod=space&amp;$1=$2&amp;%1&nbsp;&nbsp;</span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^blog-([0-9]+)-([0-9]+)&#92;.html$&nbsp;home.php?mod=space&amp;uid=$1&amp;<span class="keyword">do</span><span>=blog&amp;id=$2&amp;%1&nbsp;&nbsp;</span></span></li><li class="alt"><span>RewriteCond&nbsp;%&#123;QUERY_STRING&#125;&nbsp;^(.*)$&nbsp;&nbsp;</span></li><li><span>RewriteRule&nbsp;^archiver/(fid&#124;tid)-([0-9]+)&#92;.html$&nbsp;archiver/index.php?action=$1&amp;value=$2&amp;%1&nbsp;&nbsp;</span></li></ol></div><p>&nbsp;</p>
]]>
</description>
</item>
</channel>
</rss>