运行环境:RHEL5 + 系统自带的Apache httpd


故障现象:

1) Apache进程无缘无故丢失,而机器没有重启过;

2) Apache也无法正常启动,而且error_log日志也没有错误输出;

3) 通过strace竟然也没有发现价值的信息。


故障解决:

   进一步分析Apache的错误日志,发现mod_nss模块的日志里记录了数字证书过期导致Apache无法启动。

   搜了下网上了文章,说是mod_nss会在证书到期之后直接杀掉Apache进程,禁用mod_nss的一个参数就可以停用证书过期的检查。

   由于这台机器没有用到https,所以我把mod_nss和mod_ssl都给卸载了,卸载之后Apache正常启动。


总结:

1) 在此之前我都没有听说过有mod_nss这个模块,Apache如果使用数字证书的话都是使用的mod_ssl这个模块。后来查阅了下资料,mod_nss是红帽搞的一个mod_ssl的增加版。以后如果再遇到Apache使用SSL的场景再研究这个模块吧;


2) 这个故障的归根结底是因为装系统的时候图方便一股脑装了大量的自带软件,而很多软件和模块我们并不清楚,多多少少都会给我们的维护带来一些麻烦,所以我一直推崇最小化安装系统,需要什么软件再自己安装。这个可以通过版本控制软件puppet来进行管理。