Notes: 运维

最近这一周来一直和运维打交道,原因是服务器所在的机房网络不稳定,导致需要进行各种网络检测,测试和服务器硬件维护。

说来负责的这个项目的网络情况比较“被”,先是遇到断电维护,其次是南北网络互通问题,再是IP所在路由器故障,到现在的网络不稳定。总之是大面上遇到的问题都遇到了,小问题也都赶上了。

说起目前的情况也很奇怪:

1、出问题的IP,ping值不稳定,正常的时候3ms左右,出问题的时候不是请求超时就是ping值达到2000多ms,故障发生间隙也是几秒,几分,到几十分钟不等。

2、出问题的IP所在机子,cpu,内存,网络使用等都不大,甚至凌晨压力最最小的时候也出问题。

3、为了排除硬件问题,考虑将备机上架,而可悲的是备机竟然无法上架,原因是出问题的IP到了新机子上始终无法连通外网,而机房内同网段机子却可以ping通,换其他IP也没一点儿问题。

4、为了排除备机的系统问题,重新安装了备机的操作系统,问题同样,出问题的IP始终到了备机上无法连通外网,换其他IP没问题。

5、问题反馈机房,得答复:IP没有做网卡绑定,对此问题他们暂时也没有找到原因。

到这里我们也就无能为力了,换IP或许是最直接和简单的解决办法,但是客户忍受不了了,接连出现的问题让他们对这个机房已经丧失了信心,开始寻找新机房,准备迁移。

在这几天的网络监控中,发现了一个不错的网站“监控宝”,虽然之前早就知道,但是因为之前没有使用的需求,因此也就没有在意,这次网络监测中,发现“监控宝”还是很不错的,虽然免费的账户有一定的限制,但是作为辅助的监测工具还是很有用的,尤其结合即时通知使用时。

这里分享一个使用技巧:

想更好的使用监控宝的即时通知,是要付费的,比如短信通知,但是可以通过139邮箱的短信通知做到一样的即时通知,这点就需要你设置的通知邮箱中有一个必须是139邮箱了。

我的做法:把监控宝的通知邮箱设为我常用的gmail邮箱,然后增加过滤器,只转发来自监控宝的邮件至我不常用的139邮箱,这样只要监控宝一有邮件通知,手机就会立马收到通知。

Note:做优化

补发:之前某项目尾声时做的一些显而易见的优化工作:

1、图片size优化

使用Firebug上的YSlow就可以很方便的处理,但是对于一些重要的图片,比如logo等,还是让UI工程师专门做优化。

2、检查gzip是否开启

检查服务器上的gzip是否开启,这个对于前端优化起很大作用,如下图, gzip前后的js文件大小变化很大:


继续阅读Note:做优化

Notes: 通过logrotate进行nginx的日志轮转

看着线上项目的access.log日益增大,进行日志分析相当不便,迫切需要进行日志轮转。

网上找到了使用logrotate进行nginx日志轮转的方案,由于不需要安装任何软件,配置起来也方便,因此考虑使用这个作为轮转方案。

先copy一个配置文件:

cp /etc/logrotate.d/httpd /etc/logrotate.d/nginx

进行该文件的配置:

/usr/local/nginx/logs/*.log {
    daily
    dateext
    rotate 99
    copytruncate
    nocompress
    missingok
    notifempty
    sharedscripts
    postrotate
         /bin/kill -HUP `/bin/cat /usr/local/nginx/logs/nginx.pid`
    endscript
}

配置说明:

daily:按天来rotate
dateext:日志rotate后再后面加日期,例如:access.log轮转后会变为access.log-20110508
rotate:保留最近的几个文件
copytruncate:是指在进行轮转时会先把日志内容复制到老文件后才清除日志文件内容,可以保证日志记录的连续性。
nocompress:不压缩
missingok:当日志为空时不进行轮转
postrotate和endscript可以插入命令和脚本 执行某些操作,这里我们是平滑重启nginx,否则轮转后access.log不会再写入。

测试配置是否生效:

/usr/sbin/logrotate -f /etc/logrotate.conf

看看/usr/local/nginx/logs/下面是否有类似access.log-20110508的log生成

Notes: glassfish忘记管理员密码的解决办法

常用的方法有两个:

一、如果现有的 domain 上只是些不重要的内容,那么最方便的就是删除现有的 domain,重新创建一个 domain。

//删除domain1
asadmin delete-domain domain1
//重新创建一个domain1
asadmin create-domain --adminport 4848 domain1

二、创建一个临时 domain,再把临时 domain 的 admin-keyfile 拷贝到老 domain 上。

//创建临时domain
asadmin create-domain --adminport 4848 temp
//将临时domain的admin-keyfile拷贝到老domain中
cp domains\temp\config\admin-keyfile  domains\domain1\config\admin-keyfile
//删除临时domain
asadmin delete-domain temp

[10/21 周主题] – 安装和配置Nginx

马上Nginx将会应用到公司的第一个实战项目上,为了方便开发和运维人员安装和配置Nginx,整理了下面的内容。

我们的服务器全部采用CentOS,因此下面的配置也是基于CentOS来配置的。

安装流程:

cd /opt/

yum install gcc openssl-devel pcre-devel zlib-devel

wget http://nginx.org/download/nginx-0.8.38.tar.gz

wget http://github.com/gnosek/nginx-upstream-fair/tarball/master

tar –zxvf nginx-0.8.38.tar.gz

tar –zxvf gnosek-nginx-upstream-fair-2131c73.tar.gz

cd nginx-0.8.38

./configure
--with-http_stub_status_module
--add-module=/opt/gnosek-nginx-upstream-fair-2131c73

make & make install

正常一步步走下面是不会出问题的,前提确保你的服务器网络可用。

Nginx启动脚本:

继续阅读[10/21 周主题] – 安装和配置Nginx

[10/13周主题] – Apache,Nginx,Tomcat集群

本周主题:Apache Nginx Tomcat集群

最近这段时间一个项目处于最后的调试,上线阶段,服务器和程序的优化方面成为最近的重点,以确保项目上线后可以达到预定的目标。

最终上线的配置是Apache+Tomcat集群,Nginx仅仅参与了一下测试,算是体验下,以后估计会在前端上多多使用。

Apache前端使用的是反向代理配置方式,Session Sticky,Tomcat配置sessionDB。

Apache基本上采用默认配置,由于使用prefork模式,因此调整了prefork下的一些参数配置。

Tomcat调整了连接数,Apache和Tomcat在同台机子上,调整了Linux系统的ulimit。

Nginx做前端时,没有配置session同步,压力测试的表现方面,没发现Apache和Nginx有太大差异,不过有一次Apache前端被压挂了,无法关闭httpd。

另外这次将GlashFish和Tomcat做了一个简单的对比,发现GlashFish+自身连接池测试效果要好于Tomcat+DBCP连接池,表现方面一个是内存使用上,另一个是数据库连接数和响应上。

Nginx试用

最近Nginx比较火,也比较好奇,于是今天就试着在自己的虚拟机上装了玩玩。

教程基本上是按照网上的教程一步步走来的。

1、下载Nginx 0.7.65

2、编译,这块稍微花了点时间,主要是缺少依赖的库,一个一个去下载安装,建议初学使用可以看这里:http://wiki.nginx.org/NginxInstallOptions

我是用的是CentOS,执行下面的命令:

yum install gcc openssl-devel pcre-devel zlib-devel

3、安装完,运行就可以了!注意:apache默认也是80端口,别重了,或者暂时把Apache关掉。

4、配置 stub_status , 配置之前确定在编译时加载 http_stub_status_module, 否则你就要重新编译了!

5、配置tomcat集群,现学现用,由于我们目前大部分服务器使用的是tomcat集群。

下载 gnosek-nginx-upstream-fair-2131c73.tar

重新编译,别忘记带上 –add-module=/home/mikespook/gnosek-nginx-upstream-fair-2131c73

简单的一个Nginx+Tomcat集群就运行起来了!网上配置教程一大堆,我也就自己实践实践,如果不明白可以Google下或者百度下,不行搜狗下,可怜的Google,不,应该是可怜的中国政府!

都是被GFW逼的

为国内域名商会在不通知的情况下随时停止域名的解析,以及备案的原因,最近开始将域名往国外的Godaddy上转,但是发现了一个很大很大的问题:GoDaddy域名转向服务器被GFW了,呵呵!无语了。

不过大家都是被GFW逼出来的,有办法我们要用,没有办法我们也要想办法用,这里提供一个方法:通过.htaccess实现GoDaddy域名Apache 301重定向 可以实现转发的功能,具体做法可以参考上面的链接。

首先需要你开通Godaddy赠送的那个免费的空间,教程在这里:Godaddy自带免费10G空间开通完全教程

以后非cn域名坚决不在国内注册了。

自己大学时的Blog竟然还在运行着

天无意中发现了自己大学时的一个blog,竟然还在运行着,突然有一种说不出来的感觉,博客已经被垃圾留言等霸占,会员都近3000了,程序跑在学校的服务器上,看起来好久没人来清理。

用自己常用的密码,进入后台,删除了一些垃圾信息,浏览了一下以前的文章,最后还是关闭了这个博客,防止给学校的服务器造成影响,毕竟是很早的ASP程序,防止有漏洞。截个图,怀旧一下:

screenshot_001