利用命名管道实现nginx日志的多时区

一个应用场景需要在同一个机器上产生不同时区的日志。

方法:
建立命名管道,将nginx的日志写到命名管道,然后写个脚本接受命名管道的数据并且将时间转换到对应时区之后再输出到新的日志文件。

需要注意的地方就是要先运行脚本接受命名管道的数据,不然nginx在进行reload的操作的时候会卡住,over。

另外提供一个刚找到的好东西:http://trac.nchc.org.tw/cloud/,看台湾的技术文档实在是件很惬意的事情。

提高 “非技术性” 能力是关键

FROM : http://www.programmer.com.cn/5338/

另外,如何在技术和投资Party上去和别人“搭讪”也是董洵刚开始创业时需要学习的内容。刚开始去参加Party的时候,面对几百人的会场,拥挤而吵闹,他甚至不知道该站在哪儿,更谈不上去考虑“如何与人交流,谈话内容说些什么”了。这时Tim又给他建议了几个细节:“没人跟你说话的时候,就看有没有人落单,或者新进来没有人跟他打招呼的情况下,你就主动去跟他说话,这个人就会很感激你。而如果碰到有几个人围着一个人交谈的时候,你想凑过去的话,需要站在一个合适角度,这样既不影响人家说话的人,也不影响听的人。如果你站得很偏的话,别人看不着你,如果你站得角度好,既不唐突,又能够让别人知道你在哪儿。”这些细节都是很重要的东西。诸如此类的非技术细节,董洵还遇到很多,他甚至笑言:“开发者创业遇到的技术问题都好办,困难基本都来自于非技术性的。”他建议开发人员创业的话,尤其要注意非技术性的综合能力的提升,当然最好就是找一个有商务经验的、值得信赖的合伙人。

php : variables_order

The presence and order of variables listed in this array is defined according to the PHP variables_order configuration directive.

php.ini : variables_order

Sets the order of the EGPCS (Environment, Get, Post, Cookie, and Server) variable parsing. For example, if variables_order is set to “SP” then PHP will create the superglobals $_SERVER and $_POST, but not create $_ENV, $_GET, and $_COOKIE. Setting to “” means no superglobals will be set.

一个RewriteCond应用到多个RewriteRule

默认情况下 RewriteCond 只应用到 其紧跟着的 RewriteRule。

手册里有个 RewriteCond backreferences :
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
貌似可以实现一个RewriteCond应用到多个RewriteRule,不过看了一下不知道怎么用。

Ask Google大神找到了一个老外的解决方案:
http://my.galagzee.com/2009/02/11/mod_rewrite-one-rewritecond-to-many-rewriterules/

RewriteCond %{REQUEST_URI} !^/(pattern1|pattern2|pattern3)(/[0-9]+|/P[0-9]+|)[/]?$ [NC]
RewriteRule . – [S=3]
RewriteRule ^/([^/]*)[/]?$ /index.php/site_embeds/department/$1/X [L]
RewriteRule ^/([^/]*)/([0-9]+)[/]?$ /index.php/site_embeds/article/$2/$1 [L]
RewriteRule ^/([^/]*)/P([0-9]+)[/]?$ /index.php/site_embeds/department_archive/P$2/$1 [L]

RewriteRule 有个 S 参数,可以用来跳过其后续一定数量的规则。
然后对RewriteCond的条件取反,就可以实现了。