CodeIgniter默认url中是带有“index.php”这个字段的,不好看,不利于SEO,很多人想去掉它。网上和官方也有很多方法,大多是rewrite一下了事,这些方法的通病就是可以去掉"index.php"字段,但是加上后仍然能访问,甚至“http://****.com/index.php/index.php/index.php"这种url也照常可以访问,无形中给网站带来了安全隐患。并且在隐藏网站所用脚本语言的时候也不利,通过测试加上index.php后是否可以访问可以很轻易的探测出网站是否由php开发,是否使用了CI框架。为了以上安全性考虑,需要完全去掉index.php,即:加上后返回404页面。


查询了网上的资料,发现没有相关内容,阅读了一下CI的源码,发现不是CI的问题,而是web服务器导致的此问题。

课外小知识:对于/index.php/abc这种url,Apache和lighttpd会按"index.php?abc"来解释,而nginx会认为是请求名字是“index.php”的目录下的abc文件的内容。所以CI在nginx下不配置rewrite是无法运行的,而在Apache和lighttpd则正常。

课外小知识二:nginx里rewrite ^/(.*)$ /index.php?$1 last;来rewrite请求时,对于:/abc.abc这类请求,会rewrite成“index.php/abc_abc”,即会把“点”变成“下划线”,不清楚是为了什么。

课外小知识三:nginx配置文件里的rewrite规则不是只执行一次就完事的,是“执行一遍,假如没有碰到break,就按rewrite后的新路径再执行一遍,直到不再变化或者遇到break或者执行满10次报500错误退出”,所以单纯的用小知识二里的重写规则是不行的,需要在后面加上一句break,这样重写一遍后就不再执行了。

由上可得:在nginx配置文件里:
rewrite ^/(.*)$ /index.php?$1 last;
break;
即可完全屏蔽index.php访问。
今天开始准备给博客加上SSL连接方式,已经去startssl申请了证书,还没有发下来,发下来后给博客加上ssl连接方式,同时上线一些自己搞的小玩意,比如收菜辅助工具网页版,人人桌面模拟器网页版等,敬请期待。

电力VIP没了

[| 2010/06/19 23:18]
今天上午停了一会电,晚上电力VIP没了,郁闷。不过也是好事,终于能早睡了,有电总是会磨到很晚才睡,不是好习惯。

玩了几天回来

[| 2010/06/18 22:04]
真累,有几天没更新博客了。明天再搞。
人人网最近搞的挺狠,网页手机人人桌面三个每登录一次算一次分。我要玩人人,想玩的好,又怕被人人玩了。网页登录这个手动登就行了,因为我每天也要上去看看新鲜事什么的,手机人人这个现在由收菜工具来做,每次收菜就相当于登录一次,人人桌面的一直没有着落。今天研究了一下资料,做出来一个模拟器,放在VPS上每天登一次,hoho。现在每天能自动把三个登录分都拿到了。

首先下了最新的人人桌面,开wireshark,然后登录人人桌面。分析捕获的数据包,发现使用了XMPP协议,这个协议不是很熟,上网搜了下。原来很多聊天工具都是用这个协议。准备用Python实现这个功能。

首先去网上找了找相关结果,装上相应的库,看了看对应文档。又复习了下Python。参考一个例子,修改一下搞了出来。能用了。以后再慢慢完善,听说留言回帖什么的都有分拿,等有空加上自动留言什么的。

关于浏览器

[| 2010/06/12 19:51]
Chrome在我这里有一个毛病,就是连续使用几天后就开始占用很高的cpu,解决方法就是重启一下。以前是连续开机时间72小时左右(待机,不重启)最近发现十几个小时就开始了。用Sysinternals的一个任务管理器查看,上面写的也不清楚,不知问题所在。网上说清理缓存,我清理了也无效。每次关闭Chrome后还会留一个进程赖在那里大占cpu,忍无可忍准备换个浏览器。

FF我已经装了,缺点是启动太慢了。IE缺点是切换选项卡总是卡。Opera以前用过,手感很奇怪。搜狗也装了,外观感觉很恶。于是决定下个Safari。

下载很快,安装略慢,装好后直接卡住。关闭再开,开不了了。留下两个进程,任务管理器无法关闭。彻底无语,估计只能重启才能关掉了,我现在开着一大堆编程的东西,重启一下代价太大。于是决定还是继续用Chrome算了。


郁闷
今天看了几个媒体的推荐装机配置,发现有一个共性,就是内存都选2G的,现在内存价格确实不低,2G300元的价格也不是个小数目,特别对于低配机来说,但是相对于CPU提高一个档次需要几百元来讲并不算多。我认为现在装机还是4G为好,Windows7默认开机大概就要占用八百多M的内存,剩余内存只有1.2G,为了系统在打开新程序时相应不至于过慢,剩余内存数应该保证在最低300M左右,也就是说可用内存只有900M。刚才观察了下任务管理器,Chrome在打开多个选项卡浏览的时候大概要占用200M以上的内存。QQ占用大概50到100M内存,其他乱七八糟的东西也要占300-400M,也就是说现在2G内存还是比较宽裕的,但是开个跑跑卡丁车之类的估计就要动用swap。但是随着软件更新换代,占用的内存数量是翻番往上涨的,估计一到两年后2G内存就开始捉襟见肘。

下面看看CPU,这个我没有太定量的感觉,但是总体上操作系统不换代的情况下程序升级对CPU占用的影响并不大,平时我们的CPU也大多处在休息状态,只有开Flash游戏的时候(比如种菜)时才会占用比较多的CPU,但是总体来说现在的4核CPU坚持三年以上还是问题不大的。双核CPU三年后可能会比较慢,但是CPU不够强力只是会慢一点,内存不足的话基本就慢的无法忍受了。

假如内存+CPU搭配中,内存是瓶颈的话,随着时间流逝,电脑表现如下:流畅->玩卡丁车卡,玩的时候要把别的都关了->看网页开的选项卡多了卡,一次只能看2个网页->开Firefox卡,要换成很轻量级的比如opera->杀毒软件卡,开机奇慢->开个qq都很卡,上qq都是奢望,别说别的了。
电脑可用性慢慢降低,就像一个水桶,刚开始能装50KG水,慢慢40,30,20,10,0。像是慢性自杀。

假如CPU是瓶颈的话:流畅->打开卡丁车的速度从5秒提高到10秒->打开卡丁车的速度从10秒提高到15秒->打开卡丁车的速度从15秒提高到20秒->打开卡丁车的速度从20秒提高到25秒。

在前期的时候打开小软件的时间从0.5秒提高到1秒,人根本感觉不出来。慢慢从1秒变成等一下,慢慢变成一小会,慢慢变成等一会。但是始终是可以用的。

在2G内存的装机配置中,除了那些搭配奔腾双核或者比较低端CPU的配置,其他搭配都是内存先成为瓶颈。在装机时我倾向的推荐配置是在搭配时让内存稍稍高于CPU一点,即4G内存搭配4核CPU,或者4G内存搭配主流以上双核CPU,这样可以使用最少的钱获得最长的电脑可使用时间。


后记:本文只适用于普通家庭用户且想使用win7的,假如坚守xp,那么由于xp64位版还是很非主流的,2G就2G吧。
对于电脑发烧友来讲6G到8G内存搭配4核都是可以的。理由?上个我电脑的任务管理器图:
点击在新窗口中浏览此图片
现在只是开了很少几个程序时候的截图,平时内存占用大多在3G以上徘徊。可能你会感觉不可思议,其实很正常,一个开发用的Linux环境300M,QQ,浏览器,Adobe Reader,CHM Reader,还有一些乱七八糟的东西,占用内存都很大的。笔记本只有两个插槽,假如有三个的话我一定会再加2G内存的。

折腾XEN

[| 2010/06/08 00:58]
新搞的vps在yum update的时候总提示要yum-complete-transaction,也就是某次yum过程没有完成就被结束了。今天修复一下。

装上yum-utils包后,运行/usr/sbin/yum-complete-transaction。开始修复了,64Mram本来就处在完全占用状态,而swap开始时只占用了2m,之间swap的占用量一路上升,直到最高峰的200M。。。这时vps的反应已经非常慢了,过了好几分钟才完成修复工作。。不过总算是完成了,要是碰上OpenVZ的就直接malloc失败退出了。

不过有了新担忧,假如某台服务器上的某人全天候开大程序占用巨大swap的话岂不是整个服务器的磁盘响应速度都会大受影响?在OpenVZ由于无法使用swap,所以好控制。XEN平台下一旦出现这种情况就是灾难了。不知主机商们是如何防止这种情况的。
前几天搞vps,不知怎么的搞的yum update的时候总是卡住,ctrl+c都不好使,今天看了看,发现是在执行rpm系列命令时卡住了。原因是rpm包数据库坏了,只要执行:
rm -f /var/lib/rpm/__db*
rpm -vv --rebuilddb

即可。

基于XEN的和基于OPENVZ的VPS

[| 2010/06/07 01:00]
昨天不甘寂寞,搞了个基于XEN技术的VPS,对比使用下。

本来买了RapidXEN的VPS,但是该公司非常傲慢,主页上说为了防欺诈中国用户要怎么怎么样等多长时间云云。我对PAYPAL用的也不熟,钱都转了还怎么欺诈?不知道是什么意思。看了看网上好像评价也不怎么样。决定放弃这个。

还有两个选择,prgmr和tinyvps。(其实口碑最好的是linode,不过价格太高,我只是评测而已,搞那么高端的也没什么用),64M配置的版本价格分别是5$和4$(使用优惠码后)。ping了下,prgmr的速度很好,两百多毫秒,tinyvps要慢一点,但是比我现在用的ramhost的也快点。

下单买了prgmr,客服发邮件告诉我把ssh的公钥发给他们,发过去后就没有下文了,连支付的接口都找不到。。

于是注册tinyvps,支付,马上就开通了,自动化,速度非常快,配置:64M内存,128M交换,5G硬盘,50G流量。登录进去后机器正在yum update,过了一会,升级完毕。

开始细细对比两种VPS。首先,最大的区别就是XEN技术的虚拟机独自运行自己的内核,支持SWAP,可以应付突发内存需求。一款基于OpenVZ技术的VPS假如有256内存,那么生产环境中平时应用到150基本就是极限了,因为假如一旦有突发的内存请求,比如yum,或者编译新程序什么的。内存太满会直接malloc失败导致服务崩溃。而对于XEN来说,由于swap的存在,平时运行状态可以把所有分配到的RAM都用上,一旦有突发状况,有了swap的缓冲,虽然会导致速度变慢,但是还是能保证服务的持续提供的。

所以我感觉对于低端产品,比如256M-OpenVZ和128M-XEN对比的话,还是选择XEN较好,因为对于这些VPS,yum和编译软件所占用的内存相对总内存量来说还是比较大的,这样在平时操作中波动较大,OpenVZ技术的VPS很容易撞红线。对于中端来说,512M-OpenVZ和256M-XEN对比的话,我感觉可能OpenVZ就要相对好一点了,因为这时OpenVZ可利用的内存相对更多一点。对于高端来说,1G以上的那些VPS方案,基本不用选择了,我好像没见过OpenVZ大于1G内存的方案,并且即使假如有,由于OpenVZ的可超售性,这种高端VPS如果超售的话后果还是很恐怖的。

由于XEN技术独立运行自己的内核,所以很多系统开销要独立承担,进程数要比OpenVZ多很多。初始内存占用量也比较大。不过独立内核的好处就是自由度很高,可以通过ntpdate自己校对时间,可以通过iostat查看硬盘读写状况,等等。

通过查看磁盘信息,发现该VPS有两块虚拟硬盘,一块是5G,另一块是128M的swap,由于感觉128M也不太多,于是又跑到tmp目录下划了256的一块文件加到swap里。

另一个好处是XEN可以搭建二层VPN,如使用比较多的PPTP-VPN,这种VPN使用比较傻瓜化,Windows内置拨号程序,便于分享给朋友们用。

XEN有自己的grub.conf,可以自由设定启动选项。

其他特性还没有好好体验~继续评测中。
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]