<?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>为IT服务 [龙飞的博客] &#187; nginx</title>
	<atom:link href="http://226617.cn/archives/tag/nginx/feed" rel="self" type="application/rss+xml" />
	<link>http://226617.cn</link>
	<description>什么都略懂一点，生活就多彩一些</description>
	<lastBuildDate>Sun, 08 Jan 2012 15:58:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>完美解决nginx环境下服务器上多站点WebShell访问限制问题</title>
		<link>http://226617.cn/archives/887.htm</link>
		<comments>http://226617.cn/archives/887.htm#comments</comments>
		<pubDate>Wed, 06 Jul 2011 01:26:57 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[linux相关]]></category>
		<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[php相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[open_basedir]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=887</guid>
		<description><![CDATA[完美解决nginx环境下服务器上多站点WebShell访问限制问题 http://www.discuz.net/thread-1497466-1-1.html wget http://www.php.net/get/php-5.2.10.tar.gz/from/this/mirror wget http://php-fpm.org/downloads/php-5.2.10-fpm-0.5.13.diff.gz tar zxv... ]]></description>
			<content:encoded><![CDATA[<p>完美解决nginx环境下服务器上多站点WebShell访问限制问题</p>
<p>http://www.discuz.net/thread-1497466-1-1.html</p>
<p><code><br />
wget http://www.php.net/get/php-5.2.10.tar.gz/from/this/mirror<br />
wget http://php-fpm.org/downloads/php-5.2.10-fpm-0.5.13.diff.gz<br />
tar zxvf php-5.2.10.tar.gz<br />
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz | patch -d php-5.2.10 -p1<br />
cd php-5.2.10/<br />
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-ftp --without-pear<br />
</code><br />
<code><br />
vi main/fopen_wrappers.c<br />
</code><br />
<code><br />
/* {{{ php_check_open_basedir<br />
*/<br />
PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC)<br />
{<br />
/* Only check when open_basedir is available */<br />
if (PG(open_basedir) &#038;&#038; *PG(open_basedir)) {<br />
char *pathbuf;<br />
char *ptr;<br />
char *end; </p>
<p>下面加上：<br />
char *env_document_root = sapi_getenv("DOCUMENT_ROOT", sizeof("DOCUMENT_ROOT")-1 TSRMLS_CC);<br />
if (php_check_specific_open_basedir(ptr, path TSRMLS_CC) == 0) {<br />
efree(env_document_root);<br />
return 0;<br />
}<br />
</code></p>
<p>然后保存，退出。</p>
<p>php.in的open_basedir配置:<br />
修改：<br />
;open_basedir =<br />
为<br />
open_basedir = &#8220;/tmp/:/var/tmp/&#8221; </p>
<p>重启<br />
/usr/local/php/sbin/php-fpm restart </p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/887.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何安全的去除Nginx服务器的版本号</title>
		<link>http://226617.cn/archives/885.htm</link>
		<comments>http://226617.cn/archives/885.htm#comments</comments>
		<pubDate>Fri, 11 Mar 2011 02:29:22 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=885</guid>
		<description><![CDATA[http { &#8230;&#8230;省略配置 sendfile on; tcp_nopush on; keepalive_timeout 65; tcp_nodelay on; server_tokens off; &#8230;&#8230;.省略配置 } 重启nginx /usr/local/webserver/nginx/bin/nginx -s reload 这是我的nginx+tomcat服务器上执行前... ]]></description>
			<content:encoded><![CDATA[<p>http {<br />
&#8230;&#8230;省略配置<br />
sendfile on;<br />
tcp_nopush on;<br />
keepalive_timeout 65;<br />
tcp_nodelay on;<br />
<strong>server_tokens off;</strong><br />
&#8230;&#8230;.省略配置<br />
}<br />
重启nginx /usr/local/webserver/nginx/bin/nginx -s reload</p>
<p>这是我的nginx+tomcat服务器上执行前后的对比结果<br />
[root@localhost ~]# curl &#8211;head 127.0.0.1<br />
HTTP/1.1 403 Forbidden<br />
Server: nginx/0.8.46<br />
Date: Fri, 11 Mar 2011 08:26:51 GMT<br />
Content-Type: text/html; charset=utf-8<br />
Content-Length: 169<br />
Connection: keep-alive</p>
<p>[root@localhost ~]# /usr/local/webserver/nginx/sbin/nginx -s reload<br />
[root@localhost ~]# curl &#8211;head 127.0.0.1<br />
HTTP/1.1 403 Forbidden<br />
Server: nginx<br />
Date: Fri, 11 Mar 2011 08:26:58 GMT<br />
Content-Type: text/html; charset=utf-8<br />
Content-Length: 162<br />
Connection: keep-alive</p>
<p>如果服务器跑的是nginx+php-fpm，这时候需要编辑php-fpm配置文件 如fcgi.conf、fastcgi.conf(要看你是什么配置文件名)，久违的403报错，看看，有没有nginx版本泄露的信息：</p>
<p>fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;<br />
改为fastcgi_param SERVER_SOFTWARE nginx;</p>
<p>记得平滑重启下 平滑重启：<br />
/usr/local/webserver/nginx/sbin/nginx -s reload</p>
<p>转自：http://hi.baidu.com/yuhongchun027/blog/item/a4b25f774db3620fb051b993.html</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/885.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>由nginx漏洞想到的禁止某个目录执行php权限</title>
		<link>http://226617.cn/archives/839.htm</link>
		<comments>http://226617.cn/archives/839.htm#comments</comments>
		<pubDate>Sat, 22 May 2010 07:13:12 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=839</guid>
		<description><![CDATA[这次的nginx漏洞可谓是惊天，具体就不说了，详情见 http://www.80sec.com/nginx-securit.html 这漏洞可怕之处就是一旦有用户可以上传的地方如果能把php改后缀方式上传到服务器的话，就能任意执行。 其... ]]></description>
			<content:encoded><![CDATA[<p>这次的nginx漏洞可谓是惊天，具体就不说了，详情见 http://www.80sec.com/nginx-securit.html<br />
这漏洞可怕之处就是一旦有用户可以上传的地方如果能把php改后缀方式上传到服务器的话，就能任意执行。<br />
其实有一个通用的方法可以来避免这种未知漏洞，就是禁止用户上传目录执行php权限。<br />
在apache下面我们可以通过：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="apache" style="font-family:monospace;">   &lt;<span style="color: #000000; font-weight:bold;">Directory</span> /website/attachments&gt;
        <span style="color: #00007f;">php_flag</span> engine <span style="color: #0000ff;">off</span>
   &lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;</pre></td></tr></table></div>

<p>的方式来来禁用目录下文件php执行权限。<br />
那么在nginx里面同样可以实现这种方法，那就是location的优先匹配，关于location可以参考我之前的一批文章http://226617.cn/archives/392.htm<br />
这里简单就举个例子</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">   location ^~ /attachments/
   {
      access_log  off;
   }</pre></td></tr></table></div>

<p>这样 attachments这个目录 就不会再去跳转给fastcgi去执行php了</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/839.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx+keepalived负载均衡篇</title>
		<link>http://226617.cn/archives/791.htm</link>
		<comments>http://226617.cn/archives/791.htm#comments</comments>
		<pubDate>Fri, 06 Nov 2009 13:17:06 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[linux相关]]></category>
		<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[keepalived]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=791</guid>
		<description><![CDATA[由于nginx的url hash功能可以很好的提升squid的性能，所以我把squid前端的负载均衡器更换为nginx，但是一台nginx就形成了单点，现在使用keepalived来解决这个问题，keepalived的故障转移时间很短... ]]></description>
			<content:encoded><![CDATA[<p>由于nginx的url hash功能可以很好的提升squid的性能，所以我把squid前端的负载均衡器更换为nginx，但是一台nginx就形成了单点，现在使用keepalived来解决这个问题，keepalived的故障转移时间很短(<1s)，而且配置简单，这也是选择keepalived的一个主要原因，建议日PV值小的中小型企业web均可采用如下方案实行，下面直接上安装步骤：</p>
<p>一、环境：<br />
centos5.3、nginx-0.7.51、keepalived-1.1.19<br />
主nginx负载均衡器：192.168.0.154<br />
辅nginx负载均衡器：192.168.9.155<br />
vip：192.168.0.188</p>
<p>二、安装keepalived</p>
<p>#tar zxvf keepalived-1.1.19.tar.gz<br />
#cd keepalived-1.1.19<br />
#./configure --prefix=/usr/local/keepalived<br />
#make<br />
#make install<br />
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/<br />
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/<br />
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/<br />
#mkdir /etc/keepalived<br />
#cd /etc/keepalived/<br />
vim keepalived.conf</p>
<p>! Configuration File for keepalived<br />
global_defs {<br />
   notification_email {<br />
   yuhongchun027@163.com<br />
        }<br />
   notification_email_from keepalived@chtopnet.com<br />
   smtp_server 127.0.0.1<br />
   smtp_connect_timeout 30<br />
   router_id LVS_DEVEL<br />
}</p>
<p>vrrp_instance VI_1 {<br />
    state MASTER<br />
    interface eth0<br />
    virtual_router_id 51<br />
    mcast_src_ip 192.168.0.155    <==辅nginx的IP地址<br />
    priority 100<br />
    advert_int 1<br />
    authentication {<br />
        auth_type PASS<br />
        auth_pass chtopnet<br />
    }<br />
    virtual_ipaddress {<br />
        192.168.0.188                      <==vip地址<br />
    }<br />
}<br />
#service keepalived start<br />
我们来看一下日志：<br />
[root@ltos ~]# tail /var/log/messages<br />
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.<br />
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.<br />
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering HINFO record with values 'I686'/'LINUX'.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for fe80::20c:29ff:feb9:eeab on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for 192.168.0.154 on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Host name conflict, retrying with <ltos-31><br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for fe80::20c:29ff:feb9:eeab on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering HINFO record with values &#8216;I686&#8242;/&#8217;LINUX&#8217;.</p>
<p>很显然vrrp已经启动，我们还可以通过命令：#ip a 来检查</p>
<p>[root@ltos html]# ip a<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue<br />
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
    inet 127.0.0.1/8 scope host lo<br />
    inet6 ::1/128 scope host<br />
       valid_lft forever preferred_lft forever<br />
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000<br />
    link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff<br />
    inet 192.168.0.154/24 brd 192.168.0.255 scope global eth0<br />
    inet 192.168.0.188/32 scope global eth0<br />
    inet6 fe80::20c:29ff:feba:9be7/64 scope link<br />
       valid_lft forever preferred_lft forever<br />
3: sit0: <NOARP> mtu 1480 qdisc noop<br />
    link/sit 0.0.0.0 brd 0.0.0.0</p>
<p>说明vip已经启动，这样主服务器就配置好了，辅机的配置大致一样，除了配置文件有少部分的变化，下</p>
<p>面贴出辅机的配置文件：</p>
<p>! Configuration File for keepalived<br />
global_defs {<br />
   notification_email {<br />
   yuhongchun027@163.com<br />
        }<br />
   notification_email_from keepalived@chtopnet.com<br />
   smtp_server 127.0.0.1<br />
   smtp_connect_timeout 30<br />
   router_id LVS_DEVEL<br />
}</p>
<p>vrrp_instance VI_1 {<br />
    state BACKUP<br />
    interface eth0<br />
    virtual_router_id 51<br />
    mcast_src_ip 192.168.0.154              <==主nginx的IP的地址<br />
    priority 100<br />
    advert_int 1<br />
    authentication {<br />
        auth_type PASS<br />
        auth_pass chtopnet<br />
    }<br />
    virtual_ipaddress {<br />
        192.168.0.188<br />
    }<br />
}</p>
<p>检查其配置<br />
[root@ltos html]# ip a<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue<br />
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
    inet 127.0.0.1/8 scope host lo<br />
    inet6 ::1/128 scope host<br />
       valid_lft forever preferred_lft forever<br />
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000<br />
    link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff<br />
    inet 192.168.0.155/24 brd 192.168.0.255 scope global eth0<br />
    inet 192.168.0.188/32 scope global eth0<br />
    inet6 fe80::20c:29ff:feba:9be7/64 scope link<br />
       valid_lft forever preferred_lft forever<br />
3: sit0: <NOARP> mtu 1480 qdisc noop<br />
    link/sit 0.0.0.0 brd 0.0.0.0</p>
<p>测试其效果方法很简单，分别在主辅机上建立不同的主页，index.html分别为192.168.0.154,192.168.0.155，然后用客户机上elinks http://192.168.0.188,主机down掉后辅机会马上接替提供服务，间隔时间几乎无法感觉出来,这个环境准备再进行下压力测试，用于我杭州网跃朋友的web服务器，如有疑问请联系yuhongchun027@163.com(抚琴煮酒)</p>
<p>转载至 http://hi.baidu.com/yuhongchun027/blog/item/25eca12c3442e9e68a13998c.html</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/791.htm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>nginx 防盗链一则</title>
		<link>http://226617.cn/archives/774.htm</link>
		<comments>http://226617.cn/archives/774.htm#comments</comments>
		<pubDate>Mon, 14 Sep 2009 13:33:33 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[防盗链]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=774</guid>
		<description><![CDATA[1 2 3 4 5 6 7 location ~* ^.+\.(gif&#124;jpg&#124;png&#124;swf&#124;flv&#124;mp3&#124;zip&#124;rar)$ { valid_referers none blocked server_names *.sitea.com *.siteb.com; if ($invalid_referer) { rewrite ^/ http://www.site.com/; #return 404; } } 可以自... ]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">location ~* ^.+\.(gif|jpg|png|swf|flv|mp3|zip|rar)$ {
        valid_referers none blocked server_names  *.sitea.com *.siteb.com;
        if ($invalid_referer) {
            rewrite ^/   http://www.site.com/;
            #return 404;
        }
    }</pre></td></tr></table></div>

<p>可以自己注释选择是返回rewrite，或者404</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/774.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx gzip无法静态输出http</title>
		<link>http://226617.cn/archives/477.htm</link>
		<comments>http://226617.cn/archives/477.htm#comments</comments>
		<pubDate>Wed, 18 Mar 2009 01:11:27 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=477</guid>
		<description><![CDATA[最近在做nginx+squid2.6，发现静态文件nginx只要gzip后就http header就没有Content-Length，都是Transfer-Encoding chunked，使用gzip_static又必须每个文件预先压缩个gz。 而翻了翻squid手册说squid2.6输出gzip必须满足... ]]></description>
			<content:encoded><![CDATA[<p>最近在做nginx+squid2.6，发现静态文件nginx只要gzip后就http header就没有Content-Length，都是Transfer-Encoding chunked，使用gzip_static又必须每个文件预先压缩个gz。<br />
而翻了翻squid手册说squid2.6输出gzip必须满足2点，1就是有Content-Length，2必须有vary信息。<br />
网上搜了搜一时无法解决</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/477.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx配置文件中的rewrite参数中-f -d -e的使用误解</title>
		<link>http://226617.cn/archives/462.htm</link>
		<comments>http://226617.cn/archives/462.htm#comments</comments>
		<pubDate>Sun, 08 Mar 2009 15:21:54 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=462</guid>
		<description><![CDATA[今天在写一个rewrite的时候总是不对，当中用到了文件不存在的判断，如下： 1 2 3 4 if (!-f $request_filename){ rewrite ^(.*)$ http://site.com$1 permanent; break; } 重温这几个参数的含义 -f和!-f用来判断是否存在... ]]></description>
			<content:encoded><![CDATA[<p>今天在写一个rewrite的时候总是不对，当中用到了文件不存在的判断，如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">if (!-f $request_filename){
     rewrite ^(.*)$ http://site.com$1 permanent;
     break;
}</pre></td></tr></table></div>

<p>重温这几个参数的含义<br />
-f和!-f用来判断是否存在文件<br />
-d和!-d用来判断是否存在目录<br />
-e和!-e用来判断是否存在文件或目录</p>
<p>安装我原来的理解是如果需要判断请求的目录是否存在就用d，比如/dira/<br />
需要判断请求的目录是否存在就用f，比如/dira/filea<br />
如果文件或者目录之一有不存在的话就用e</p>
<p>原来我以为/dira/filea 假如dira和filea都不存在的话随便用那个参数都能匹配<br />
今天经过实际使用发现我完全搞错了，如果真正请求遇到上面这个目录和文件都不存在的话 !-f 和 !-d 是没法匹配的，只能用 !-e 。<br />
正确的解释是<br />
-e和!-e用来判断是否存在文件<span style="color: #ff0000;">和</span>目录</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/462.htm/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>nginx多域名站点rewrite跳转不改变域名的方法：server_name_in_redirec用法</title>
		<link>http://226617.cn/archives/402.htm</link>
		<comments>http://226617.cn/archives/402.htm#comments</comments>
		<pubDate>Thu, 15 Jan 2009 14:21:08 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=402</guid>
		<description><![CDATA[nginx中如果一个server节点有多个域名，并且在不是访问主域名的情况下如果进行rewrite跳转，会自动把域名转换成主域名。比如： 1 2 3 4 5 server { server_name www.my.com www.site.com; rewrite ^/$ /src/login.php re... ]]></description>
			<content:encoded><![CDATA[<p>nginx中如果一个server节点有多个域名，并且在不是访问主域名的情况下如果进行rewrite跳转，会自动把域名转换成主域名。比如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">server {
   server_name www.my.com www.site.com;
   rewrite ^/$ /src/login.php redirect;
   ......
}</pre></td></tr></table></div>

<p>这里如果访问www.site.com的话会自动跳转到www.my.com/src/login.php，而不是www.site.com/src/login.php。</p>
<p>解决方法：<br />
如果nginx版本在0.6.x及以上版本的话使用</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">server {
   server_name www.my.com www.site.com;
   server_name_in_redirect  off;
   rewrite ^/$ /src/login.php redirect;
   ......
}</pre></td></tr></table></div>

<p>老版本的话可以使用</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">server {
   server_name www.my.com www.site.com;
   location = / {
      rewrite ^ /src/login.php redirect;
   }
   ......
}</pre></td></tr></table></div>

<p>关键点：<br />
如果server_name_in_redirec为on，那么nginx将使用server_name中的第一个 server name来进行rewrite跳转。如果设置成off的话nginx将使用请求中Request Headers中的host来进行rewrite跳转。<br />
server_name_in_redirec 可以在配置文件中 http , server 和 location 区域级别中使用。</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/402.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx支持泛域名支持的方法</title>
		<link>http://226617.cn/archives/399.htm</link>
		<comments>http://226617.cn/archives/399.htm#comments</comments>
		<pubDate>Thu, 15 Jan 2009 14:01:45 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[泛域名]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=399</guid>
		<description><![CDATA[要使用Nginx下的泛域名支持，必须在编译 Nginx的时候加上 &#8211;with-http_sub_module 然后使用 1 2 3 4 5 server { listen 80; server_name _; ..... ... ]]></description>
			<content:encoded><![CDATA[<p>要使用Nginx下的泛域名支持，必须在编译 Nginx的时候加上<br />
&#8211;with-http_sub_module</p>
<p>然后使用</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">server {
listen       80;
server_name  _;
.....
}</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/399.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx配置文件中的rewrite参数</title>
		<link>http://226617.cn/archives/394.htm</link>
		<comments>http://226617.cn/archives/394.htm#comments</comments>
		<pubDate>Thu, 15 Jan 2009 08:22:16 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=394</guid>
		<description><![CDATA[正则表达式匹配，其中： * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配，其中： * -f和!-f用来判断是否存在文件 * -d和!-... ]]></description>
			<content:encoded><![CDATA[<p>正则表达式匹配，其中：<br />
* ~ 为区分大小写匹配<br />
* ~* 为不区分大小写匹配<br />
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配</p>
<p>文件及目录匹配，其中：<br />
* -f和!-f用来判断是否存在文件<br />
* -d和!-d用来判断是否存在目录<br />
* -e和!-e用来判断是否存在文件或目录<br />
* -x和!-x用来判断文件是否可执行</p>
<p>flag标记有：<br />
* last 相当于Apache里的[L]标记，表示完成rewrite<br />
* break 终止匹配, 不再匹配后面的规则<br />
* redirect 返回302临时重定向<br />
* permanent 返回301永久重定向</p>
<p>一些可用的全局变量有，可以用做条件判断(待补全)<br />
$args<br />
$content_length<br />
$content_type<br />
$document_root<br />
$document_uri<br />
$host<br />
$http_user_agent<br />
$http_cookie<br />
$limit_rate<br />
$request_body_file<br />
$request_method<br />
$remote_addr<br />
$remote_port<br />
$remote_user<br />
$request_filename<br />
$request_uri<br />
$query_string<br />
$scheme<br />
$server_protocol<br />
$server_addr<br />
$server_name<br />
$server_port<br />
$uri </p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/394.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx配置文件中的location中文详解</title>
		<link>http://226617.cn/archives/392.htm</link>
		<comments>http://226617.cn/archives/392.htm#comments</comments>
		<pubDate>Thu, 15 Jan 2009 03:46:15 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=392</guid>
		<description><![CDATA[location 语法:location [=&#124;~&#124;~*&#124;^~] /uri/ { … } 默认:否 上下文:server 这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式，你必须使用 ~* 前... ]]></description>
			<content:encoded><![CDATA[<p>location</p>
<p>语法:location [=|~|~*|^~] /uri/ { … }<br />
默认:否</p>
<p>上下文:server</p>
<p>这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式，你必须使用 ~* 前缀选择不区分大小写的匹配或者 ~ 选择区分大小写的匹配。</p>
<p>确定 哪个location 指令匹配一个特定指令，常规字符串第一个测试。常规字符串匹配请求的开始部分并且区分大小写，最明确的匹配将会被使用（查看下文明白 nginx 怎么确定它）。然后正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。如果没有找到匹配的正则表达式，使用常规字符串的结果。</p>
<p>有两个方法修改这个行为。第一个方法是使用 “=”前缀，将只执行严格匹配。如果这个查询匹配，那么将停止搜索并立即处理这个请求。例子：如果经常发生”/”请求，那么使用 “location = /” 将加速处理这个请求。</p>
<p>第二个是使用 ^~ 前缀。如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。</p>
<p>而且它重要在于 NGINX 做比较没有 URL 编码，所以如果你有一个 URL 链接’/images/%20/test’ , 那么使用 “images/ /test” 限定location。</p>
<p>总结，指令按下列顺序被接受:<br />
1. = 前缀的指令严格匹配这个查询。如果找到，停止搜索。<br />
2. 剩下的常规字符串，长的在前。如果这个匹配使用 ^~ 前缀，搜索停止。<br />
3. 正则表达式，按配置文件里的顺序。<br />
4. 如果第三步产生匹配，则使用这个结果。否则使用第二步的匹配结果。</p>
<p>例子：</p>
<p>location = / {<br />
# 只匹配 / 查询。<br />
[ configuration A ]<br />
}</p>
<p>location / {<br />
# 匹配任何查询，因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。<br />
[ configuration B ]<br />
}</p>
<p>location ^~ /images/ {<br />
# 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。<br />
[ configuration C ]<br />
}</p>
<p>location ~* \.(gif|jpg|jpeg)$ {<br />
# 匹配任何已 gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用 Configuration C。<br />
[ configuration D ]<br />
}</p>
<p>例子请求:</p>
<p>/ -> configuration A</p>
<p>/documents/document.html -> configuration B</p>
<p>/images/1.gif -> configuration C</p>
<p>/documents/1.jpg -> configuration D</p>
<p>注意：按任意顺序定义这4个配置结果将仍然一样。</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/392.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>从apache迁移到nginx遇到的alias和rewrite问题</title>
		<link>http://226617.cn/archives/381.htm</link>
		<comments>http://226617.cn/archives/381.htm#comments</comments>
		<pubDate>Wed, 14 Jan 2009 08:57:47 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[alias]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=381</guid>
		<description><![CDATA[这几天在把我们网站的主web server从apache迁移到nginx上面，没想到还是遇到了些问题。 1.原来在apache每个二级域名都是用建站点的方式，我打算在nginx里面使用rewrite规则的方式来进行跳转，比如... ]]></description>
			<content:encoded><![CDATA[<p>这几天在把我们网站的主web server从apache迁移到nginx上面，没想到还是遇到了些问题。<br />
1.原来在apache每个二级域名都是用建站点的方式，我打算在nginx里面使用rewrite规则的方式来进行跳转，比如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">location /
{
     rewrite ^(.*)life.my.com(.*)$ $1www.my.com/lan28/$2 last;
}</pre></td></tr></table></div>

<p>可事实上这样写是完全没有效果的，后来分析了下实际上在 location / 里面的rewrite是只能处理hostname之后的内容就是www.my.com/(rewrite)，对于hostname是没法进行rewrite的，那如果要对hostname进行rewrite怎么办呢。目前想到是把rewrite挪到location外面去，不过尝试了下貌似还是有问题，继续研究中。。。</p>
<p>2.原来www下面有几个alias，比如访问/wwwroot/www/php/ alias 到/wwwroot/php/ 这样，但是在nginx里面alias的话呢htm、图片等静态文件没问题，但是php问题就来了，由于php是通过正则转发到fastcgi的比如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">root  /wwwroot/www;
location /php/
{
     alias /wwwroot/php/;
}
 location ~ .*\.php?$
{
     fastcgi_pass  127.0.0.1:9000;
     fastcgi_index index.php;
     include fcgi.conf;
}</pre></td></tr></table></div>

<p>这种情况下如果http访问/php/*.php文件实际上是由 location ~ .*\.php?$ 处理的，也就是说php文件根本没没有进行alias还是按照/wwwroot/www/php/的路径访问的。<br />
这个问题如何解决呢，我想到了几个方法：<br />
 1)使用symbolic link从系统上把/wwwroot/php/映射到/wwwroot/www/php/<br />
 2)修改location ~ .*\.php?$ 的正则，将/php/目录排除，然后在写一个location ~ /php/.*\.php?$ 来处理/php/下面的php文件<br />
 3)放弃alias使用rewrite的方式来处理。<br />
三个方法第一个属于回避型，虽然能解决问题但是不符合我的要求。第二个么太复杂，能否实现还是未知。最后我选择了第三个方法就是用rewrite来处理。<br />
略微修改了下代码</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">root  /wwwroot/www;
location ^~ /php/ #这里的关键就是使用“^~”，这样如果是/php/的话就不去匹配下面的php的正则，而全部重定向到php.my.com去，不然的话还是一样的htm正常，php无法访问。
{
     rewrite (.*)/php/(.*) http://php.my.com/$2 permanent;
}
location ~ .*\.php?$
{
     fastcgi_pass  127.0.0.1:9000;
     fastcgi_index index.php;
     include fcgi.conf;
}
·</pre></td></tr></table></div>

<p>这里的http://php.my.com 对应的就是/wwwroot/www/php/<br />
这样基本就实现了需求了</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/381.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>apache rewrite规则中多RewriteCond条件 转换到nginx写法</title>
		<link>http://226617.cn/archives/333.htm</link>
		<comments>http://226617.cn/archives/333.htm#comments</comments>
		<pubDate>Thu, 25 Dec 2008 05:55:02 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=333</guid>
		<description><![CDATA[最近在迁移写应用到nginx中，在rewrite上面遇到了些问题。 虽然大部分的rewrite规则转换到nginx中几乎改动很小，但是一些特殊的比如下面这段，在nginx里面可以说完全不一样。 1 2 3 4 5 RewriteCond %{R... ]]></description>
			<content:encoded><![CDATA[<p>最近在迁移写应用到nginx中，在rewrite上面遇到了些问题。<br />
虽然大部分的rewrite规则转换到nginx中几乎改动很小，但是一些特殊的比如下面这段，在nginx里面可以说完全不一样。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !-f
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !-d
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_URI} !^.*(\.html|\.xml|\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$|.*(FCKeditor).*$|.*(fckeditor).*$|.*(userfiles).*|.*(testadow).|.*(api).*|.*(passportcode).*
<span style="color: #00007f;">RewriteRule</span> !\.(js|ico|gif|jpg|png|css)$ /index.php
　　</pre></td></tr></table></div>

<p>转换到nginx的写法（只是参照的语法，并不是上面内容的转换）</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="nginx" style="font-family:monospace;">location /xxxx/ {
         set  $test &quot;&quot;;
&nbsp;
         if ($request_method = POST) {
             set $test  P;
         }
&nbsp;
         if ($http_cookie ~* &quot;CCCC=.+(?:;|$)&quot; ) {
             set $test  ${test}C&quot;;
         }
&nbsp;
         if ($test = PC) {
           #rewrite rule goes here.
         }
}</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/333.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个用nginx后访问网站子目录问题</title>
		<link>http://226617.cn/archives/115.htm</link>
		<comments>http://226617.cn/archives/115.htm#comments</comments>
		<pubDate>Wed, 20 Aug 2008 03:24:00 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[只谈技术]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/index.php/archives/115</guid>
		<description><![CDATA[今天在做测试环境的时候发现网站的 http://testbbs.thmz.com/uc/ 打得开的 但是 http://testbbs.thmz.com/uc 就打不开，就少一个/ 照例说http://testbbs.thmz.com/uc  访问时会自动跳转为 http://testbbs.thmz.com/uc/ 但是... ]]></description>
			<content:encoded><![CDATA[<p><a></a></p>
<p>今天在做测试环境的时候发现网站的</p>
<p><a href="http://testbbs.thmz.com/uc/">http://testbbs.thmz.com/uc/</a> 打得开的</p>
<p>但是</p>
<p><a href="http://testbbs.thmz.com/uc">http://testbbs.thmz.com/uc</a> 就打不开，就少一个/</p>
<p>照例说<a href="http://testbbs.thmz.com/uc">http://testbbs.thmz.com/uc</a>  访问时会自动跳转为 <a href="http://testbbs.thmz.com/uc/">http://testbbs.thmz.com/uc/</a></p>
<p>但是我这个偏偏就是没有跳转</p>
<p>问了个朋友，他说他的好的，要来配置文件对比着看看，没啥大的区别</p>
<p>最好一个一个调试，结果发现问题出在了</p>
<p>server_name 221.134.22.196 testbbs.thmz.com;</p>
<p>我的conf文件是从以前的机器复制过来的，结果221.134.22.196这个ip忘了改了，导致了这个问题。</p>
<p>另外一直解决方案是做个rewrite，这样即使server_name填错也没关系</p>
<p>             if (-d $request_filename)<br />
             {<br />
                    rewrite ^/(.*)([^/])$ <a href="http://$host/$1$2/">http://$host/$1$2/</a> permanent;<br />
             }</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/115.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx的日志回滚</title>
		<link>http://226617.cn/archives/111.htm</link>
		<comments>http://226617.cn/archives/111.htm#comments</comments>
		<pubDate>Tue, 12 Aug 2008 14:07:00 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[只谈技术]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/index.php/archives/111</guid>
		<description><![CDATA[作者：shunz，出处：http://shunz.net/2008/07/nginx_log_rotation.html Nginx是一款采用Linux 2.6内核epoll新机制开发的Web服务器软件，能极大地提高Web访问特别是小文件访问的I/O性能，是c10k问题的一个解决方案... ]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://shunz.net/"><span style="color: #3399ff;">shunz</span></a>，出处：<a href="http://shunz.net/2008/07/nginx_log_rotation.html"><span style="color: #3399ff;">http://shunz.net/2008/07/nginx_log_rotation.html</span></a></p>
<div class="entry-body">
<p>Nginx是一款采用Linux 2.6内核epoll新机制开发的Web服务器软件，能极大地提高Web访问特别是小文件访问的I/O性能，是<a title="c10k" href="http://www.google.com/search?hl=en&amp;q=c10k" target="_blank"><span style="color: #0f83f8;">c10k</span></a>问题的一个解决方案。有测试称Nginx比Apache效率提高10倍，而从<a href="http://shunz.net/2008/06/mysql_discuz_.html"><span style="color: #0f83f8;">我自己上次的测试</span></a>来看，其并发性能确实比Apache强不少。Nginx以短小精悍著称，所以虽然一些web核心功能他都支持得挺好，但是一些扩展功能却还不能支持，比如Nginx目前就还不支持通过pipe输出log，所以就不支持利用cronolog来按时间进行日志截断回滚。下面提供一种替代解决方案：</p>
<pre class="prettyprint"><span class="com"><span style="color: #880000;">#!/bin/sh</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">=</span></span><span class="str"><span style="color: #008800;">"/var/log/httpd"</span></span><span class="pln">yesterday</span><span class="pun"><span style="color: #666600;">=</span></span><span class="str"><span style="color: #008800;">`date +%Y%m%d -d '-1 day'`</span></span><span class="pln">lastday </span><span class="pun"><span style="color: #666600;">=</span></span><span class="str"><span style="color: #008800;">`date +%Y%m%d -d '-1 month'`</span></span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">bin</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">rm $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">access</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">$</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">lastday</span><span class="pun"><span style="color: #666600;">}.</span></span><span class="pln">log</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">bin</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">rm $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">error</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">$</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">lastday</span><span class="pun"><span style="color: #666600;">}.</span></span><span class="pln">log</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">bin</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">mv $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">access</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">log $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">access</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">$</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">yesterday</span><span class="pun"><span style="color: #666600;">}.</span></span><span class="pln">log</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">bin</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">mv $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">error</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">log $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">error</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">$</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">yesterday</span><span class="pun"><span style="color: #666600;">}.</span></span><span class="pln">logkill </span><span class="pun"><span style="color: #666600;">-</span></span><span class="pln">USR1 </span><span class="str"><span style="color: #008800;">`cat /var/run/nginx.pid`</span></span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">bin</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">gzip $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">access</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">$</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">yesterday</span><span class="pun"><span style="color: #666600;">}.</span></span><span class="pln">log </span><span class="pun"><span style="color: #666600;">&amp;</span></span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">bin</span><span class="pun"><span style="color: #666600;">/</span></span><span class="pln">gzip $</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">log_dir</span><span class="pun"><span style="color: #666600;">}/</span></span><span class="pln">error</span><span class="pun"><span style="color: #666600;">.</span></span><span class="pln">$</span><span class="pun"><span style="color: #666600;">{</span></span><span class="pln">yesterday</span><span class="pun"><span style="color: #666600;">}.</span></span><span class="pln">log </span><span class="pun"><span style="color: #666600;">&amp;</span></span></pre>
<p>然后将该脚本保存在/etc/cron.daily目录里，或者在crontab里每日0点时运行。</p></div>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/111.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

