就像家庭中90%的维修活都能用螺丝刀和扳手来完成,Web服务器也不例外。让我们来看看这些工具。
1、服务器响应缓慢
假如服务器响应缓慢,需要做的第一件事情就是判断问题来自服务器还是网络,第一个工具就是uptime。
uptime 会显示服务器的平均负载,假如最后的这个数字高于 2 或 3 ,问题的原因就在于有一些进程占用系统太多资源。假如这个数字不是很高,您就需要考虑网络的因素了。
假如看到的高的负载的话,就需要使用 top 命令来确定那些进程在消耗系统资源。
top 命令缺省显示10条进程,当然您能够使用 top N 来指定需要查看的进程数。
更加周详的进程列表能够使用 ps -auxw 命令
比较 Web 进程的“硬”限制(Apache 编译时的限制)和“软”限制(httpd.conf的限制),假如两者的数字接近,那么您就要考虑升级硬件或重新编译 Apache 了。
2、未授权登录
假如担心有非法用户闯入系统,最简单的办法就是用 w 命令来检查。
假如真的看到有非法用户在您的系统上,能够立即 kill 他的进程, 用 vipw 命令把他的口令修改为“*”,或把 shell 改为 /sbin/nologin。
3、服务不能启动或崩溃
假如 Web 服务器不能启动或启动时崩溃,就需要使用 apachectl 命令来找到原因。首先用 apachectl configtest 命令检查 httpd.conf 的合法性。但是 apachectl 并不是万能的。假如问题依然不能解决,我们就应该检查错误日志。另外,apachectl 检查 /var/run/httpd.pid 文档来找到原来的进程,假如进程号不同,apachectl stop 命令不会工作。这种情况下就需要使用 ps 命令来 kill 对应的进程。
4、网络检测
查找因为网络问题引起的原因时,第一个简单的命令就是 ping。
假如 ping 的结果看起来很正常,或许就需要使用比较大的包来试一下,ping 的缺省包大小为 56 字节,我们用 -s 指定包大小为 2048 字节来试一下。采用大的包之后,返回时间延长很正常,但是很长的时间返回或包丢失就显示网络有问题了。
5、交叉信号
假如怀疑服务器和交换机之间的网络配置有问题,能够采用 netstat -finet 命令来显示打开的端口连同连机的外部服务。
假如您关心自己的服务器是否遭到攻击,就会显示内核的内存使用超常,能够采用
netstat 的 -m 参数来查看。
假如您发现 httpd 的负载不是很重,但是网络资源占用的内存还是很大的话,能够考虑关闭一些服务和端口。
6、网络问题
假如网络发生了问题,就需要使用 ifconfig 命令来检查网卡是否正常。这个命令会显示网卡的 IP 地址,掩码,双工,速率等。
常见的问题是网卡的速率或双工配置和交换机端口不一致。特别是配置了“autosense” 选项,但是却没有成功。 能够采用
ifconfig down eth0 [options]
来关闭。
7、权限问题
有些稀奇古怪的问题,很可能来自没有剩余空间。能够采用 df 命令来检查剩余的硬盘空间。一个简单的例子,就是 PHP 的session 无效了,原因就是写入 session 的文档系统 /tmp 已满了。
有些问题就是没有配置好权限,常见的问题就是没有为 CGI 脚本配置 x 权限,没有为一些目录配置 rx 权限。
8、常见的怀疑对象
假如有问题发生,其实第一件事就应该是检查系统日志:/var/log/messages。
假如不能在 /var/log/ 目录找到有些日志文档,能够查看 /etc/syslog.conf 的配置。
对于 Apache 来说,就需要检查 [apache_dir]/logs/error _log 来确定不能启动的原因。
以上是笔者应对Web 服务器应急措施的一些个人经验,假如您有好的经验,笔者热情欢迎您的交流。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




