如何通过mod_pagespeed和Memcached在Ubuntu 15.04上加速apache
本教程将向您展示如何使用Apache的Google mod_pagespeed模块以及快速内存缓存Memcached来改善网站的页面加载时间。 页面加载时间是在搜索引擎中获得良好排名的重要因素,您可以使用Google PageSpeed Insights工具或Firefox Web浏览器中的开发人员工具来测试当前的加载时间。 Pagespeed是一个Apache 2模块,可在将网站的内容传递到浏览器之前优化和缓存网站的内容,结果是页面加载,服务器上的系统负载减少,服务器每秒可以提供更多页面。 Mod_pagespeed默认使用文件系统缓存,在本教程中,我们将使用Memcached替换文件系统缓存,Memcached是一个快速内存缓存守护程序,可进一步改善加载时间。 本教程与各种apache设置兼容,我将使用Ubuntu LAMP服务器 基础 但您也可以使用ISPConfig 3 Perfect Server教程。
安装mod_pagespeed
Google为32位和64位Ubuntu安装提供mod_pagespeed .deb软件包。
如何找出是否需要32位或64位包? 运行命令:
uname -a
命令的结果应该类似于下面的截图。
当命令包含字符串“x86_64”时,系统将运行64位Linux内核。 在这种情况下,请使用下面提供的64位Ubuntu的命令。
Ubuntu 64位 (大多数当前服务器默认)
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-stable_current_amd64.deb
Ubuntu 32位
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
dpkg -i mod-pagespeed-stable_current_i386.deb
然后重新启动Apache 2以加载mod_pagespeed配置。
service apache2 restart
安装Memcached
Memcached守护程序在Ubuntu存储库中可用.deb包可以安装apt:
apt-get -y install memcached
运行命令“netstat -tap | grep memcached”来查看Memcached是否启动:
netstat -tap | grep memcached
netstat命令的结果如下所示:
root@server1:/tmp# netstat -tap | grep memcached
tcp 0 0 localhost:11211 *:* LISTEN 1687/memcached
我以粗体标记了Memcached正在运行的端口。 我们需要知道mod_pagespeed配置的端口号。
如果您喜欢从基于PHP的应用程序使用Memcache,而不仅仅是使用mod_pagespeed,那么请安装PHP memcahed扩展名:
apt-get install php5-memcached
配置mod_pagespeed以使用Memcached
在编辑器中打开pagespeed.conf文件,我将在这里使用nano编辑器:
nano /etc/apache2/mods-available/pagespeed.conf
并搜索“ ModPagespeedMemcachedServers”行:
[....]
# ModPagespeedMemcachedServers localhost:11211
[....]
删除行前面的#,使得生成的行如下所示:
[....]
ModPagespeedMemcachedServers localhost:11211
[....]
如果您的服务器内存很多,那么您可以通过删除此行前面的#来进一步加快速度:
[....]
ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200
[....]
然后重新启动Apache 2服务器以激活新配置。
service apache2 restart
现在mod_pagespeed将使用Memcached作为存储后端。 您可以使用nc命令从Memcached获取使用统计信息:
echo stats | nc 127.0.0.1 11211
root@server1:/tmp# echo stats | nc 127.0.0.1 11211
STAT pid 1687
STAT uptime 134
STAT time 1440931897
STAT version 1.4.14 (Ubuntu)
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.008000
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 6
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
按[ctrl] + c返回命令提示符。
现在再次测试您的网站的速度,例如使用PageSpeed Insights。 当您的网站没有多少流量时,可能您必须重新加载网页几次才能填满缓存,然后才能获得正确的结果。