Rootop 服务器运维与web架构

2011-12-25
发表者 Venus
暂无评论

BWS/1.0

HTTP/1.1 200 OK
Date: Sat, 24 Dec 2011 00:19:49 GMT
Server: BWS/1.0
Content-Length: 3210
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Sat, 24 Dec 2011 00:19:49 GMT
Content-Encoding: gzip
Set-Cookie:

百度的服务器信息,还是nginx做的。只是在编译的时候改了源代码,显示为bws,就像土豆一样tws。

2011-12-24
发表者 Venus
暂无评论

Apache开启gzip压缩

系统环境为rh5.5,yum安装的httpd。
首先确定/usr/lib/httpd/modules下存在模块“mod_deflate.so”,默认yum安装都会存在。

编辑 /etc/httpd/conf/httpd.conf,确定存在下面一行配置参数:

LoadModule deflate_module modules/mod_deflate.so   //默认安装已经被加载。

在httpd.conf中添加以下三行:

AddOutputFilterByType DEFLATE text/html text/php text/png text/jpg text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE

第一行代表对什么样的内容启用GZIP压缩,第二行代表压缩级别,第三行代表启用deflate模块对AddOutputFilterByType 定义的类型的输出进行GZIP压缩。

(看网上资料写那么多,其实三行就足够,根据实际情况自行配置。反正我添加的三行跑的没问题。)
另外说句,其实gzip压缩对于html css xml之类的压缩效果好,对于图片的话···

完成以后大家可以用 http://seo.chinaz.com/写上你的域名,测试下压缩效果。

关于deflate模块参数可以参考下手册:
https://www.rootop.org/ApacheManual/Apache2.2_zh_CN/mod/mod_deflate.html
//来自网络的资料:
gzip原本是文件压缩格式,扩展名为.gz,HTTP协议用它来改进WEB应用程序性能,加快HTTP请求返回内容的下载速度,增加用户体验,降低网络带宽占用。
apache内置有mod_deflate模块来启用gzip功能,但假如安装apache的时候没有编译相关模块,就需要你手动安装一次,以启用它:
1.首先到你的apache源码目录,查找到mod_deflate.c文件
Linux下都可用locate mod_deflate.c
通常位置:apachehttpd源码目录/modules/filters/mod_deflate.c
2.进入上面找到的目录运行下面的命令:
/usr/local/apache/bin/apxs -i -c -a mod_deflate.c
注:apxs目录请参照您自己的机器,通常在apache安装目录的bin目录下
3.安装完成,到apache的modules目录看看是不是有了mod_deflates.so

可能碰到的问题:

apache启动后问题,日志里出现mod_deflate.so:undefined symbol:inflateEnd
解决:在LoadModule deflate_module modules/mod_deflate.so之前增加LoadFile /usr/local/lib/libz.so或LoadFile /usr/lib/libz.so,具体libz.so位置自己找一下。

2011-12-23
发表者 Venus
暂无评论

Searching for device at HBA 0, ID 6, Drive 6 on adapter 0 is predicting a future failure, The sense qualifier is 2h.Press any key to continue.

Searching for device at HBA 0, ID 6, Drive 6 on adapter 0 is predicting a future failure, The sense qualifier is 2h.Press any key to continue.

百度了下,英文意思大约为:
查找 驱动器(硬盘) 在0号主机总线适配卡 6号顺序号上,6号驱动器在0号主机总线适配卡上判定为将出故障,检测结果编号为2H,按任意键继续。

原因可能有:

硬盘坏了,或是硬盘数据线/电源线没插好或接触不良。
打开机箱,重新插一下硬盘的数据和电源线。
再去主板设定(BIOS)中查看一下是否能正常检出硬盘(如果是SCSI硬盘,去SCSI卡设定中看)。
如果还是不能检出硬盘可能就是硬盘损坏。

如果系统能正常起动的话,赶紧备份数据更换硬盘。

这一般出现在带故障预测的服务器的SCSI卡上。 
最后的解决办法是,拔掉其中一块硬盘,赶紧换~~~(当初是俩硬盘做的raid1)。

2011-12-21
发表者 Venus
暂无评论

socket: Too many open files

用apache自带的ab做压力测试的时候遇到两个错误:

1、apr_socket_recv: Connection reset by peer (104)

说需要修改httpd.conf配置文件,修改同时保持活动的参数,ok,改了没用,还是报错,然后资料又说改源代码后重新编译,嫌麻烦这个就不考虑了。

2、 socket: Too many open files (24) 超过文件最大打开数

linux下:ulimit -n 10000(设置系统允许同时打开的文件数,系统默认是1024),可以用ulimit -a查看open files项,# lsof |wc -l 可以查看系统所有进程的文件打开数

上面的方法是暂时性,重启以后失效。永久性方法如下:

[root@localhost ~]# vi /etc/security/limits.conf

* soft nofile 10000
* hard nofile 10000

网上有的资料说编辑 /etc/rc.local 添加 ulimit -SHn 51200
发现这种方法没有效果。系统启动后还是默认的1024.
后来测试可以通过编辑 /etc/profile 最后一行添加 ulimit -SHn 51200 测试通过。(S代表软限制,H代表硬限制)
不过最可行的方法还是编辑 /etc/security/limits.conf

在最后放弃用ab测试,用的webbench。

2011-12-15
发表者 Venus
暂无评论

removing mirrorlist with no valid mirrors: //var/cache/yum/base/mirrorlist.txt

       在对一台centos5.3 yum list的时候开始报错,yum clean all 都试过,但是没效果,最后发现是dns的问题:

原先dns:
#nameserver 211.155.235.201
#nameserver 211.155.235.188
报错:
[root@sunnes ~]# yum list
Loaded plugins: fastestmirror
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </html>/
removing mirrorlist with no valid mirrors: //var/cache/yum/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
[root@sunnes ~]#

谷歌dns,使用8.8.8.8报错:
[root@sunnes ~]# yum list
Loaded plugins: fastestmirror
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=i386&repo=os error was
[Errno 4] IOError: <urlopen error (104, ‘Connection reset by peer’)>
Error: Cannot find a valid baseurl for repo: base
[root@sunnes ~]#

最后换成谷歌8.8.4.4没问题了,并且找到最快的yum源为163的。
再yum list 没问题了。