设置nginx的rewrite如果替换项是以http://开头,则起的是redirect的作用,即使最后的参数是last不是redirect,例如:
rewrite ^(.*)$ http://aaa.bbb.com/ccc$1 last;
浏览器端会得到302。
nginx的文档里提到:
redirect – returns temporary redirect with code 302; it is used if the substituting line begins with http://
另外,rewrite后的host的使用顺序如下:
- 当请求的http头里的host匹配sever_name里的任一host时,使用此host
- 若不匹配,或者为空,使用server_name的第一个host
- 若没有设置server_name,则使用本机的hostname
- 若要一直使用http头里的host,则将server_name设置为:servername _ *;(下划线不能少,因为 * 不能做为sever_name第一项的开头)
aptitude install默认会安装recommends的包,etch中apt-get不会,而lenny中则和aptitude相同。两者都不会安装suggests。
aptitude remove会清除所有不需要的包,apt-get remove只会清除指定包,但是有autoremove选项。
如果希望只安装必要的包的话,可以用apt-get –no-install-recommends,aptitude可以在设置里取消Install recommended packages automatically。
或者,在/etc/apt/apt.conf中根据需要写入以下配置:
APT::Install-Recommends "false";
APT::Install-Suggests "false";
Aptitude::Recommends-Important "false";
Aptitude::Keep-Suggests "false";
附录:
2.2.8 软件包依赖关系
Debian 软件包管理系统依赖声明,它描述了这一事实:一些软件包需要其它软件包被安装才能正常运行或运行得更好。
- 软件包 A 依赖(depends)软件包 B:要运行A必须安装 B。在有些情况下,A 不仅依赖 B,还要求 B 的特定版本。版本依赖通常有最低版本限制,A 更依赖于B的最新版而非某个特定版本。
- 软件包 A 推荐(recommends)软件包 B:软件包维护者认为所有用户都不会喜欢缺少某些功能的 A,而这些功能需要 B 来提供。
- 软件包 A 建议(suggests)软件包 B:B 中某些文件与 A 的功能相关,并能够增强 A 的功能。这种关系通过声明软件包 B 增强 Enhances 软件包 A 来表示。
- 软件包 A 与软件包 B 冲突(conflicts):如果系统中安装了 B 那么 A 无法运行。“Conflicts”常和“replaces”同时出现。
- 软件包 A 替换(replaces)软件包 B:B 安装的文件被 A 中的文件移除和覆盖了。
- 软件包 A 提供(provides)软件包 B:A 中包含了 B 中的所有文件和功能。
上述术语使用方法的更详细的信息参阅 Packaging Manual 和 the Policy Manual。
注意,aptitude 和 dselect 可以对 recommends 和 suggests 类软件包进行更细粒度的操作,apt-get 只会简单的下载安装 depends 类软件包而不管 recommends 和 suggests 类软件包。这两个程序均正式使用 APT 作为其后端。
最近在做基于cfengine的二次开发,目前正在进行的是系统初始化的工作。
开始的时候我直接对现有的shell脚本进行cfengine化,然而随着工作的深入,越发疑惑这么做的意义,使用脚本逐句执行的方式来运用cfengine有什么优势呢?不就是相当于使用了cfengine语法的“脚本”么?而且系统初始化后,如何保证这个状态呢?难道要再写一套“脚本”?
随后和老大的一番讨论让我发现我还是没有理解透彻cfengine对于promise的定义。即,promise是为了保证一种状态的不变。用户需要定义的就是这个状态。当然,对于复杂的cfengine没有提供原生支持的状态,还需要定义修复方法。
所以,使用cfengine首先要确定的是要达到什么状态,其次是状态意外改变后如何修复。
对于系统初始化,首先用cfengine描述出系统应达到的状态,而第一次运行,整个系统明显是“偏离”这个状态的,于是修复过程开始。
补记:
nginx的fancyindex插件能提供定制性更好的index页面(插件许久没有更新,有一个小的bug,含有冒号的url不能正确生成,稍稍改下代码就行了)。不过经过一段时间高负载的使用后,发现页面载入延迟比较高,使用ab局域网压力测试的结果(nginx 0.7.64)表明fancyindex的效率只有原生autoindex的37.5%。
virtual/jdk默认依赖icedtea-bin,在/etc/make.conf中添加ACCEPT_LICENSE=”*”即可解决
windows计划任务有两种,一种是开始-程序-附件-系统工具-任务计划,另一种方式是用at命令
两者的区别在于“任务计划”会在前台运行,运行帐户为当前用户;而at命令在后台运行,运行帐户为system。当然at命令也可以使用/interactive选项在前台运行。
使用at命令要注意两点:
- 因为运行帐户不同,所以一些环境变量是不同的,比如使用pscp远程拷贝的时候,当前用户的key已经在注册表里,但是system用户没有,导致运行失败。(system如果第一次运行pscp会出现主机验证,解决方案是要么用/interactive运行一次,要么使用pscp -batch)
- 只有可执行文件(.exe .bat .com)可以直接使用at命令运行,cmd内置命令(如copy、ren和bat的语法等)要使用at 19:00 cmd /c copy ….的形式来运行,如果bat文件中也包含cmd命令,也要使用这种方式。
以下介绍仅限于两者初级试用阶段
trac基于python,有easy_install的话安装很简单,然而配置起来比较复杂,项目管理和用户权限控制等都要基于命令行,本土化工作也比较落后,不过插件很多,相关的功能比较完善
redmine和trac很像,基于ror,使用gem安装也很简单,配置全部可以在web界面搞定,本土化工作很不错,不过插件很少,有一些小的bug(主要集中在ajax上),svn的代码高亮很简陋,相关高亮插件有诡异的问题,具体表现是在 一些机器上只有在服务端第一次启动的时候高亮正常,其余情况下均产生错误的html页面。
redmine的一些注意事项:
- 使用mod_rails(passenger)或者直接运行内置服务器比较高效,fastcgi反应比较慢
- 使用fastcgi的话,注意要打开apache的rewrite模块,同时public目录下.htaccess设置RewriteBase,然后删掉除了fcgi的部分,不然会出循环rewrite的错误,类似这样:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
- 如果ruby、apache(apxs)均为自己编译,安装mod_rails的时候要注意将ruby加到PATH中,然后export APXS2指向apxs,同时软连接一个rake到ruby的bin目录(没找到哪个环境变量能起作用,不得不说mod_rails的安装脚本虽然用户体验很好,但是比较弱智……)
- 使用mod_rails要在VirtualHost中设置RailsEnv production(请自行修改),同时注意加上Order
项目管理的意义在于多人开发环境下,将责任和功劳分配到每个人身上,然而对于一个人进行开发的项目而言,管理的意义是什么呢?
我觉得主要是起强制和记录的作用,强制的意思是强制进行细化的需求分析,并且因为需求的可见,继而督促自己在合理的时间内完成每一项任务(一个小功能,因为对自己的懒惰,极可能N久也完不成);记录的意思是指记录下开发的轨迹,这样能清晰的呈现项目的开发流程,方便进行code review以及引人多人开发。
基于terminator 0.14进行配置,配色方案模仿konsole的一个配色。
~/.config/terminator/config
audible_bell = False
force_no_bell = True #这两个都是禁止一切形式的响铃(包括视觉上的)
enable_real_transparency = True #开启透明效果
background_color = #2C2C2C
font = Consolas 12 #强烈推荐程序员使用这个字体
foreground_color = #DCDCCD
scrollback_lines = 5000
#palette是颜色表,12位,6位的每位重复一次即可
palette=#33FF33FF33FF:#770055005500:#6600BB4488AA:#DDFFAAFF88FF:#99AABB99DD77:#DDCC88CCCC44:#88CCDD11DD33:#DDCCDDCCCCDD:#770099008800:#DDCCAA33AA33:#7722DD55AA22:#FF00DDFFAAFF:#9944CC00FF33:#EECC9933DD55:#9933EE11EE33:#FFFFFFFFFFFF
maximise = True
background_darkness = 0.8 #透明程度
background_type = transparent #这样设置才能启用透明
ps1:vim里面如果偏暗,在vimrc里面添加:set background=dark
ps2:详细的配置选项说明见 man terminator_config
ps3:terminator的可视化配置菜单是摆设么……居然不能保存……
skype客服:skype最新的4.1版本无法使用国内卡,请使用4.0.4版本
ps:经常用360升级软件的后果出来了……
近期评论