January 2010

关于nginx的last-modified返回头

squid 不能缓存cache-control在65秒以下的页面,详见ayou同学的这篇文章:http://sudone.com/linux/squid_cache_65s.html

根据文章所说,如果想实现65秒以下的缓存呢,用last-modified头吧。

今天遇到了一个比较郁闷的事,就是架设在squid后的一台nginx,随意访问一个静态页面,死活不出last-modified头。也没作什么特殊的配置,我自己新装一个nginx,测试之。

$curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/0.8.32
Date: Thu, 28 Jan 2010 14:57:11 GMT
Content-Type: text/html
Content-Length: 151
Last-Modified: Thu, 28 Jan 2010 03:07:20 GMT
Connection: keep-alive
Accept-Ranges: bytes

很正常嘛,不作任何配置时默认是会有last-modified的。

后来还是经ayou同学的提醒,因为使用了ssi。。。

使用了ssi,nginx 就假设你这个页面动态的,谁知道你include的页面上次修改时间啊,当然也就不给你返回last-modified头了。

另外,使用nginx的 http_sub_module时,也不会出这个头的。在测试机上试试,加了个ssi on

$curl -I http://127.0.0.1
HTTP/1.1 200 OK
Server: nginx/0.8.32
Date: Thu, 28 Jan 2010 14:57:32 GMT
Content-Type: text/html
Connection: keep-alive

果然是ssi。。。

mark 一下,以前就试过了,今天竟然忘了!!

linux系统管理技术手册(中文版)阅读

封面写着linus大神倾力推荐。

扫了一下目录,觉得还OK,都是些比较基础的内容,不错不错,查漏补缺一下,巩固一下基础。

定一下计划,牛年内把这本书看完!!

发发牢骚

真是佛都有火,承办了广州2010年某盛大盛事的某部门,说某些事情,只能在下班后才能操作。好,我就下班后吧,反正平时经常在下班时间工作。他们下班时间也挺早的,下午5:30就下了。然后,今天我就约他们5:30,帮我改个域名指向吧,域名又不是我们管的,郁闷。

还有自己公司的人,也是不太靠谱的,中午在im上约好了,到了点,人又不见了!!!

最近做的几个事,都是要与人配合的,配合还好,最怕遇到不配合的,就像今天。如果全权交给我来做,起码我全心全意通宵都把事情做好。

某部门啊,你们的人这样做事,看来今年那个亚洲盛事啊,还会办得好吗?

网易微博上线测试~~

t.163.com 正式上线内测啦!!

其实就是走模仿twitter路线的产品,暂时就那么几个最简单的twitter功能,不过感觉还是不错的,除了那个丑陋的logo。。。

我也算是内测前接触微博的那批人,很应该抢一个有趣一点的个性地址的,结果傻了,竟然想不到。。。最后就用了个 t.163.com/freebsd 。。。

昨天也就给公司内部的人注册玩玩,刚开放,n 多人注册,然后不断地follow,已转眼下来,已follow了100人,被follow了70下。刚开放时,公司内部就喧闹起来了。。。所有的群都静了,微博像个闹市般热了起来。。。

今天就冷清多了,这个热退得还真快,哈哈。看着看着,有点空虚的感觉了。。。删一些人,只关注一下技术的就算了。。。

新搭建的nagios+pnp爆的一个错误

部门明天要上一个大项目啊,我今天赶紧搭监控。

原谅我这个古董,21 世纪了,还在搭nagios。。。web 环境,我也还是很古董地选用apache + php_module 的方式。。。其实监控系统来说,没什么性能要求,apache和nagios 也符合我的需求了,好,开始!!

首先爆了一堆这样的错:

Deprecated: Assigning the return value of new by reference is deprecated in /data/nagios/share/pnp/include/function.inc.php on line 1029

Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing’ for ‘CST/8.0/no DST’ instead in /data/nagios/share/pnp/include/function.inc.php on line 560

貌似 5.3.0 才报这样的错,5.2.9 也没有爆啊。。。没错,我是很懒,但一般我都会追求真相的。但是,项目明天就要上线了啊,时间不允许我这样玩了,我还是懒一点吧。。。以解决问题为最终目标!!

让我设timezone。。。不太会php啊。。。也没研究过nagios的架构。。。直接一点吧,见到什么改什么!!

function.inc.php 貌似是一个基础函数,每个函数都会include它的,我在里面显式地指定timezone总可以吧,于是在function.inc.php 里加一句

date_default_timezone_set(‘Asia/Chongqing’);

哈哈,timezone 的 warning 解决了!但问题随之又来了。。。又报错。。。

Deprecated: Function eregi() is deprecated in /data/nagios/share/pnp/include/function.inc.php on line 1505

函数 deprecated 了。。。算了,我决定改php.ini,屏蔽错误和warning!

打开 phpinfo() 看一下php.ini 在哪里,找不到。。。

在 httpd.conf 里加一句:

PHPIniDir “/data/apache/conf”

随便copy一个php.ini过来,刚才google了一下,好像是 error_reporting 的问题,但不管我怎么改error_reporting的组合,都无法成功。。。突然被我看到这样的字眼:

display_errors = On

哈哈,还不是你!!把你关了总可以了吧!!

display_errors = Off

apachectl graceful 一下,哈哈,问题解决了!!!可以用了!!继续配置监控。。。

唉,LAMP 如此经典的组合,我了解得还是不够啊!!

wordpress 上传大图爆http error

在wordpress上传一个1.1M左右size的图,竟然爆http error。。。google 了一下,竟然要配置一下apache 的 mod_security 模块,但我用的是nginx啊。。。

感觉不是wordpress的问题,难道是nginx的配置问题??查看了一下error log,发现这句

client intended to send too large body: 1134408 bytes

原来如此,我以前好像配置过这个,找了一下,作出修改如下:

在location ~ \.php$ 的标签下,加一行

client_max_body_size    8m;

然后重启nginx,我一般这样重启 killall -HUP nginx,OK,上传没问题了!!

Jan 13,2010.

g.cn , 好样的!!

多对不同的ssh keys登录同一个用户

先做一个简单的介绍。像我这种系统管理员,远程登录服务器嘛,肯定要用到ssh的。现在,有一点经验的sa都会要求你用ssh key来登录服务器,而不是account和password来登录。为什么呢??

使用用户名和密码去登录服务器,你与服务器之间的通讯数据,并没有加密的,如果你被某人盯上了,他搭一个代理,在你和服务器之间担当一个中间人的角色,那么,你和服务器通讯的所有数据,都会流经他的代理,由于数据并没有加密,这个时候,他就能获取所有你往服务器发送的数据,及服务器返回给你的数据了。

使用ssh key登录有什么不同呢?整个连接过程是这样的,ssh key 生成的时候是一对的,一个叫public key,一个叫private key,就是一对key pair了。ssh 登录服务器时,我就拿着private key,服务器就拿着public key,咱们配对吧,配上了,就让我登录,配不上,就拒绝我了。配上后,我们之间的通讯都加密了,即使真有中间人监听,他拿到的也只是加密后的数据。

废话真多,说正题。

如果,我是A,他是B,我们都拥有自己的ssh key。但现在我们想以同一个用户C的身份登录,是否可以实现呢??

只要把我们的public key append 到C用户的pubilc key 就行了,服务器寻找用户的public key,在/etc/ssh/sshd_config 里配置,默认是/home/C/.ssh/authorized_keys .

cat /home/A/.ssh/authorized_keys >> /home/C/.ssh/authorized_keys

cat /home/B/.ssh/authorized_keys >> /home/C/.ssh/authorized_keys

然后A 就 ssh C@ip 就可以用C用户来登录了,B也同样可以。

其实这个东西,我也是今天才知道的啊@@我一直以为一个人只可以用一对key pair和一个用户名登录,今天一个同事提出可以这样做,我才尝试了一下。我真是火星了!!

avatar观后感

上周<avatar>风风火火的首映了,首映赶不上,想不到接下来一周的华星imax厅在正常时间段,都没有票了。。。这也太夸张了吧。。。在我决定买一张周六12点的电影票之前,公司行政部突然群发邮件,公司组织看<avatar>。。。哈哈,这也太有趣了!!

时间定在1月11日的7点,石景山万达国际影城的imax厅。今天,我5点就赶紧把刚遇到的技术问题,草草解决,掩盖住问题,就去霸专车了。3台专车送去,每台50人,但整个imax厅是300人的。。。也就是说,并不是所有人都能坐的。。。

来到万达影城时,已经6点30了。在M记买了个包和汽水,就进去看了,还是错过了开场的几分钟。

160分钟过去,没有兴奋,有点失落。

第一次看imax,那屏幕,几层楼那么高啊,哈哈,乡巴佬进城啊我。看完这个imax,我对普通电影院已经没有了任何兴趣。电影的特技,无可厚非,一级棒。相对比当代的其它电影,实在是高出几个level。

但是,缺点也很明显。剧情,太苍白了吧!整个故事框架,就是09年我最爱的电影<district 9>的翻版。潘多拉星球的景物和动物,确实很奇幻,但造型上,真的不觉得有什么创新的,都是东抄西抄抄过来的。票房超越<Titanic>,看这个势头,没问题。James 大叔,硬是自己把自己的记录给破了。但感觉上,这都是网络和其它宣传攻势造出来的,相对于13年前的<Titanic>,当时没有internet的风行和现在众多的信息渠道,个人感觉,还是有那么一点差距噢。

对于avatar总的感觉,就是过誉了,但看起来还是很过瘾的!!哈哈!

show 一下我的电影票

我的生日是11月27日,我坐在11排27号,哈哈。

Hello world!

我的blog开张啦!!
刚度过24岁生日,毕业一年多了,在同学中,过得不算差,但也不算很好。仍然月光族,仍然有很多天真幼稚的想法,仍然贪玩,不成熟啊,长不大的小屁孩。但其实,已经不年轻了。
仅以此blog,记录一下我的生活、工作,未来的我再回头看看这里的文字,笑笑,足矣。