apache优化3-设置错误优化和开启压缩简述
一、错误页面优雅显示
说明:避免404,403的错误提示,提高用户的体验,如:访问不存在的www.baidu.com/a.html、www.taobao.com/a.html页面时,不显示404 Not Found 提示信息,而是自定义的显示页面。
1. 修改apache的主配置文件
在apache的网站根标签中添加
ErrorDocument 404 /404.html # 此处/ 指的是/usr/local/apache2.4/htdocs目录
ErrorDocument语法简介:
ErrorDocument 错误代码 跳转的页面或文件
2.创建测试页面
3.重启服务并测试
在跳转到文件的测试中,我用全路径进行测试,当把404错误页面跳转文件放
到其他目录的时候,测试时直接报错,访问不到
vim /usr/local/apache2.4/conf/httpd.conf
#找到网站根目录标签
#<Directory "/usr/local/apache2.4/htdocs"> </Directory>,第218行
#在标签末尾添加,ErrorDocument
ErrorDocument 404 /404.html #保存退出
echo "Please enter the correct URL" > /usr/local/apache2.4/htdocs/404.html
service apache2.4 restart
curl 192.168.226.64/a.html #访问一个不存在的页面
Please enter the correct URL
二、启动压缩模块
说明:网站访问量的增加和内容量的增加,使网站的带宽也会不断地增加,继而使网站的成本增加。当内容量大增大时,而客服端的带宽小,影响用户的体验。考虑方案:将某些内容压缩之后(节省带宽)再传给用户,再客服端进行自动解压。若无特殊情况,所有的文本内容都应该能被gzip压缩,例如:html(php),js,css,xml,txt等。
图解:
1.检查是否有mod_deflate模块
/usr/local/apache2.4/bin/apachectl -M #查看安装的所有模块
输出结果:
static:编译时安装
shared:DSO方式安装(编译后使用apache扩展工具apxs编译添加)
两种启动模块方式:
static:编译时安装
编译时跟上--enable-deflate
shared:DSO方式安装(动态共享对象)
DSO模块可以在编译服务器之后编译,也可以用Apache扩展工具apxs编译添加
2.DSO安装mod_deflate模块
DSO方式安装语法:/usr/local/apache2.4/bin/apxs 后跟参数
参数:
-c 表明需要执行编译操作
-i 表明需要执行安装操作
-a 表示自动添加到一个LoadModule行到httpd.con文件中,以激活此模块,
若此行已经存在,则表示启用
3.配置压缩模块参数
1).打开主配置文件,解开mod_deflate的注释,第103行
(默认情况下,该行是打开的)
2).写入参数配置
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</ifmodule>
3.参数介绍:
DeflateCompressionLevel 9
#压缩等级,越大效率越高,消耗CPU也越高。从1到9,9是最高等级。
#据说,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。
DeflateCompressionLevel
#预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。
#注:一般压缩等级使用6或8 生产环境下一般用6
SetOutputFilter DEFLATE #启用压缩
DeflateFilterNote Input instream #声明输入流的byte数量
DeflateFilterNote Output outstream #声明输出流的byte数量
DeflateFilterNote Ratio ratio #声明压缩的百分比
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
#仅压缩,限制特定的MIME类型文件
注意:
1、如果是虚拟主机,需要在<VirtualHost*:80>中添加配置即可实现压缩
2、图片和视频本身就是压缩格式,一般不需要压缩的。有些小图片和视频压缩后还会变大。(解释:压缩是有一个算法的,算法本身也是要放进去的,如果被压缩文件大小为1K,压缩后为0.5K,而算法占2K,压缩后为2.5K,比原来的就大了)
/usr/local/apache2.4/bin/apachectl -M | grep deflate #结果:并没有安装delate压缩模块,使用DSO方式安装
#使用apache扩展工具apxs安装源码包下的mod_deflate.c到apache2.4的modules目录下
/usr/local/apache2.4/bin/apxs -c -i -a /usr/local/src/httpd-2.4.16/modules/filters/mod_deflate.c
#显示如下信息,说明安装成功
[activating module `deflate' in /usr/local/apache2.4/conf/httpd.conf]
ls /usr/local/apache2.4/modules/mod_deflate.so #查询mod_deflate是否安装成功
vim /usr/local/apache2.4/conf/httpd.conf
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</ifmodule>
service apache2.4 restart
总结:生产环境中,在启用mod_deflate时,一定要注意,对于太小的文件和某些格式的图片不要对它们进行压缩,有可能越压越大。
扩展:AddOutputFilterByTypeDEFLATE后跟的所有的压缩文件类型,供参照选择。
text/plain text/html text/php text/xml text/css text/javascript
application/xhtml+xml application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php image/svg+xml image/gif image/png image/jpe image/swf image/jpeg image/bmp