关于apache下网站加速利器mod-pagespeed

自从有了自己独立服务器,一直认为自己网站速度还是挺快的,但自从上了监控宝之后,发现其实自己服务器的服务经常断。有很多时候网站是不可用的,这个让我很郁闷。一直在看dbanotes(大冯)的博客,知道他的服务器跟我都是在linode下,并且都是linux。然而我们的网站访问速度大相径庭。这一点肯定是我服务器没有配置好。
于是我通过查看两个网站页面HTTP状态,发现两个网站的网页返回HEAD信息差别不大,只有一个X-Mod-Pagespeed信息不知道是做什么的。看来这个参数的作用很大。
原来这是贴心的 Google 特为懒惰型网站主提供了傻瓜化解决方案,据称该模块可以有效将网页加载速度提高50%,Google这款加速模块简单的解决了许多复情况的问题:
-如果你的网站采用apache构建服务器,不需要对网站CMS系统进行处理即可应用;
-加速模块可以自行对网络传输的html字节优化及对图象,css进入压缩优化传输;
-智能缓存是一大亮点,它可以自动智能缓存,加速下载
以下是这个模块的版本
mod_pagespeed 32-bit .deb (Debian/Ubuntu)
mod_pagespeed 64-bit .deb (Debian/Ubuntu)
mod_pagespeed 32-bit .rpm (CentOS/Fedora)
mod_pagespeed 64-bit .rpm (CentOS/Fedora)
具体的安装方法:
首先先下载模块到服务器
如果你是debian的系统请运行一下命令
dpkg -i mod-pagespeed-*.deb
apt-get -f install
如果是centos的系统则
yum install at
rpm -U mod-pagespeed-*.rpm
重启APACHE后你会发现速度真的快了


本博已于今天正式迁移到Linode

为了便于管理今天本博已正式迁移到了linode,linode在东京的机房步给力啊,怎么有时候会ping超时呢
特此记录以下。


linode服务器重装全纪录

大家都说linode好用,还真的好用,这么一转眼就用了一年半了。最近刚刚重装了自己在LINODE的服务器。在此之前,我用的是debian,后来发现centos用起来太方便了。于是就琢磨着把系统换一下。在网上,查了好久的资料没有一个相对完整的解决方案。于是,我只好临时买了一个新的linode节点,做测试。下面就把大致的过程写出来。
其实,Linode的系统重装很快很方便。主要就是之前你的数据怎么整理,备份再在重装后恢复回来。
我的解决办法分两步:
1,首先先把现有的linode节点重新划分,把现有的一个镜像盘分为两个,举例来说,我现在的linode系统分为两个硬盘镜像(disk image):512MB Swap Image和Debian Disk Image,其中Debian Disk Image有16G,所有的东西都在这里。我用linode的resize工具现将16G中没有用到的10G划分出来。然后再新建一个硬盘镜像(Create a new Disk Image),把这10G作为一个外挂硬盘来用,命名为:extdisk。(注意:以上操作要先关闭系统)
2,在Lionde的系统配置部分(Configuration Profiles)找到自己的debian配置,点击编辑(edit),找到外挂硬盘(Block Device Assignment)部分,在/dev/xvdc这里下拉找到新建的外挂硬盘extdisk,保存设置。然后启动操作系统。
3,正常登录操作系统,首先查看外挂硬盘是否正常,打入fdisk -l 发现列表中已经有/dev/xvdc,接下来,我们就要想办法把外挂硬盘挂入操作系统了。现在你想挂入的地方新建一个目录,比如我选在根目录新建一个叫extdisk,命令是:mkdir /extdisk,然后用Mount /dev/xvdc /extdisk把外挂硬盘挂入操作系统。命令正常执行后,我们ls /extdisk,发现正常访问,这就表示我们的外挂硬盘正常工作了。我们可以把我们需要备份的文件都拷进来。
4,备份完毕后,关闭操作系统,开始重装。先删除debian的硬盘镜像(Debian Disk Image),然后删除操作系统的配置文件(My Debian Profile),之后在重建一个Linux版本(Deploy a Linux Distribution)就可以了,重建的时候,他会自动把你刚刚删除的硬盘镜像的空间用上,很方便。这次的Linux版本可要选对了,我选择的是Centos 5.5
5,启动centos,在把步骤3中的操作重做一遍,把刚刚的备份硬盘镜像重新挂进来,我们的重装就完成了。
重装系统风险很大,请大家务必慎重哈


linux centos 5 lamp(apache mysql php) yum自动安装shell脚本

手头有N台linux centos 5的服务器,每次配置都要打很多命令,不想这么烦下去了。
自己写了一个自动安装脚本,包括了apache mysql php的自动Yum安装。最后还设置了防火墙。
记录一下,想要源文件的可以跟我要。
别忘了,给这个文件这是一个执行权限,简单的来就是chmod 7777
#! /bin/bash
yum -y install httpd php mysql mysql-server php-mysql
echo ‘install httpd,php,mysql,php success’
# define auto run
/sbin/chkconfig httpd on
/sbin/chkconfig –add mysqld
/sbin/chkconfig mysqld on
echo ‘define httpd mysqld autorun success’
# start service
/sbin/service httpd restart
/sbin/service mysqld restart
echo ’start httpd mysqld success’
#define mysql password
mysqladmin -u root password ‘ismurray’
echo ‘define mysql password success’
# install apache ext
yum -y [...]


如何查看CentOS版本方法

有以下命令可以查看:
# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
root@MyMail ~ # uname
Linux
root@MyMail ~ # uname -r
2.6.18-164.el5
以下二种方法适用于RedHat,CentOS
root@MyMail ~ # cat /etc/redhat-release
CentOS release 5.4 (Final)
登录到linux执行rpm -q redhat-release
#rpm -q redhat-release
或CentOS
root@MyMail ~ # rpm -q [...]


如何解决linux下apache启动时httpd: apr_sockaddr_info_get() failed for 报错

配置一台云服务器,干干净净的系统,我用Yum安装了apache后,发现启动时候报错
httpd: apr_sockaddr_info_get() failed for xxxx
虽然启动还算正常,但不知道会不会有什么影响。
google之后找到了解决办法:有两个方向,如下
这个问题应该是没有在 /etc/httpd/conf/httpd.conf 中设定 ServerName 所以它会用主机上的名称来取代,首先会去找 /etc/hosts 中有没有主机的定义。
所以要解决这个问题可以设定 ServerName 或者在 /etc/hosts 中填入自己的主机名称 MYHOST,像这样:
>vi /etc/hosts
127.0.0.1 localhost.localdomain localhost MYHOST
或者是
将httpd.conf中的ServerName 前面的 # 去掉。
apache 2.2 的虚拟机的配置放置在conf/extra/httpd-vhosts.conf 中


如何解决CentOS 5 host命令无效(-bash: host: command not found)的问题

当我们检查DNS设置的时候常常会用到host命令,但Centos5默认安装是没有这个命令的。
当显示-bash: host: command not found的时候,我们就需要安装对应的包了
host这个程序是 bind-utils包里面的
所以要先安装 bind-utils
yum install bind-utils 就ok了


如何设置你的CentOS的时间(如何与时间服务器同步)

安装好CentOS,时间默认不是我们所在的东八区,导致上面运行的游戏,每天下午3点才开始发放当天礼包。
我们可以手动设置时间,但最简单办法,是跟时间服务器同步。
这里我介绍几个靠谱的时间服务器地址
第一个当然是国内官方:中国国家授时中心:
http://www.time.ac.cn/stime.asp
其他的:
time.nist.gov
ntp.fudan.edu.cn (复旦) )(国内用户推荐使用此服务器)
timekeeper.isi.edu
subitaneous.cpsc.ucalgary.ca
usno.pa-x.dec.com
time.twc.weather.com
swisstime.ethz.ch
ntp0.fau.de
ntp3.fau.de
time-a.nist.gov
time-b.nist.gov
time-nw.nist.gov
nist1-sj.glassey.com
在CentOS下具体操作是:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate ntp.fudan.edu.cn
如果没有安装ntpdate的可以yum一下:
yum install ntp


如何在Linux用chmod来修改所有子目录中的文件属性?

在linux下,我们可以用chmod更改文件或目录属性
例如: chmod mode file|dir
当文件夹具备相同的权限,有些文件夹下面套着好几层目录,一层一层的用chmod不是办法
我们可以这样改变所有子目录的权限: chmod mode dir -R
我们也可以用SHELL脚本实现
#!/bin/sh
find /murray -type d -exec chmod 755 {} \;
find /murray -type f -exec chmod 644 {} \;
注: /murray为你要更改的目录。


linux下LFTP的高级应用

在我刚刚发现LFTP的时候,我就注意到了它功能强大的mirror功能。
因为它可以给 mirror 命令传入参数,控制同步的行为:
–reverse 上传到FTP上,也可以使用 -R
–delete: 如果远程目录下已经没有某个文件,而本地有,则删除这个文件。
–only-newer: 只下载新的文件。mirror的判定新文件是通过文件大小和修改时间来判定的,我们可以使用–ignore-time,来屏蔽时间判定,这样mirror只通过大小来判断新闻,是同步速度加快。
–exculde: 不包含某个目录。
–verbose: 详细输出。
比如:
mirror –delete –only-newer –verbose work bak/
自动备份服务器work文件夹,到本地当前目录的 bak文件夹下,并且删除已经不存在的文件,并且只下载最新的文件,再给出详细的输出。
用 lftp 的 -e 选项,把命令直接接在 lftp 之后:
lftp -u username,password -e”mirror –delete –only-newer –verbose /work bak/” ftpIP
也可以用 at 选项指定备份的时间:
lftp at 01:00 -u username,password -e”mirror –delete –only-newer –verbose /work bak/” ftpIP
这样每天 1 点就会执行备份任务。
根据经验,ftp比rsync快很多,以后如果有大量数据备份,还是考虑使用ftp好,所以还是用好LFTP吧