杰者的备忘录

nginx相关的正则匹配

 ~ 匹配,区分大小写
~*  不区分大小写的匹配
!~   不匹配
!~*  不匹配
^~   常用于location 语法中,后边是一个字符串。它的意思是,在这个字符串匹配后停止进行正则表达式的匹配。
如: location ^~ /images/,你希望对/images/这个目录进行一些特别的操作,如增加expires头,防盗链等,但是你又想把除了这个目录的图片外的所有图片只进行增加expires头的操作,这个操作可能会用到另外一个location,例如:location ~* \.(gif|jpg|jpeg)$,这样,如果有请求/images/1.jpg,nginx如何决定去进行哪个location中的操作呢?结果取决于标识符^~,如果你这样写:location /images/,这样nginx会将1.jpg匹配到location ~* \.(gif|jpg|jpeg)$这个location中,这并不是你需要的结果,而增加了^~这个标识符后,它在匹配了/images/这个字符串后就停止搜索其它带正则的location。
=      表示精确的查找地址,如location = /它只会匹配uri为/的请求,如果请求为/index.html,将查找另外的location,而不会匹配这个,当然可以写两个location,location = /和location /,这样/index.html将匹配到后者,如果你的站点对/的请求量较大,可以使用这个方法来加快请求的响应速度。
@      表示为一个location进行命名,即自定义一个location,这个location不能被外界所访问,只能用于Nginx产生的子请求,主要为error_page和try_files。

...

linux的端口转发到域名

如果希望转发的不是IP,而是一个域名,因为IP是动态的(例如花生壳的免费域名),天天改规则又不太现实。iptables -t nat -A PREROUTING --dst 127.0.0.1 -p tcp --dport 3389 -j DNAT --to-destination MY.COM:3389上面这样是不行的,得下面这样wget http://www.boutell.com/rinetd/http/rinetd.tar.gztar -xvf rinetd.tar.gzcd rinet...

linux安装nodejs支持

网上一堆教程教去编译源码的,如果linux功底不好就可能折腾出一大堆错误,所以还是直接安装省事点


sudo yum install nodejs npm


node -v 


运行app.js   

node app.js


让node在后台运行


npm install -g forever

...

Win ser 的winsxs目录越来越大清理


安装这个http://www.microsoft.com/en-us/download/confirmation.aspx?id=42739 补丁

服务器管理器里安装 桌面体验 ,重启,开始-附件-系统工具-磁盘清理


...

Windows UPDATE 8000FFFF 错误的解决

百度上的答案只是说

WINDOWS 2008的安全设置方案取消了C盘根目录的Users权限,只给administrator和system权限,结果就出现了系统更新时候出现8000FFFF错误。 

只需添加C盘根目录的Users读取和运行权限,即可顺利安装补丁。出于安全考虑,在补丁更新后可以取消该权限。 


微软官网的答案只是 注册表


其实通常还是无法解决,参考以下方法,通常可以解决: 

...