新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Linux网站架构系列之apache----调优篇

Linux网站架构系列之apache----调优篇

作者: 时间:2016-10-08 来源:网络 收藏

CustomLog |/usr/local/sbin/cronolog /app/logs/access_www_%Y%m%d.log combined

按小时轮询(生产环境较常见用法):

CustomLog |/usr/local/sbin/cronolog /app/logs /access_www_ %Y%m%d%H.log combined

六、错误页面优雅显示

为了提升网站的用户体验,避免404,403之类的丑陋的默认错误提示出现,我们需要对错误页面进行优化,让他们变的漂亮一点。错误页面不仅在于告诉用户访问出现了问题,而且需要引导用户到正确的页面。

错误页面优雅化显示的实现方式主要有两种,下面我们主要以404错误为例:

第一种:在apache的主配置文件中的标签内添加ErrorDocument配置。

[root@sunsky /]# vi /usr/local/apache/conf/

AllowOverride None

Options None

Require all granted

ErrorDocument 404 /l #将404错误跳转到/www/html下的l页面上

第二种方法:在apache的虚拟主机配置文件中的

ServerAdmin

DocumentRoot /www/html

ServerName www.sunsky.pw

ServerAlias sunsky.pw

CustomLog |/usr/local/sbin/cronolog /app/logs/www_access_%Y%m%d.log combined

ErrorLog |/usr/local/sbin/cronolog /app/logs/www_error_%Y%m%d.log

ErrorDocument 404 (php),js,css,xml,txt等。特殊情况就是像一些首页上有很多广告投放的js代码,由于需要每次加载进而进行来访信息统计,所以这些广告代码拥有者网站的js不会经过gzip压缩,

mod_deflate模块,在我们前篇部署的时候已经编译安装进去了。

那么如果没有安装,如何安装呢?并且如果不知道到是否安装了,如何查看呢?

1、mod_deflate模块检查及安装

由于apache2.2.x和2.4.x这两个版本在检查mod_deflate模块是否安装方法方法是不同的。最后,我无奈做了很多测试,下面建议大家这样来检查。

[root@c64-web /]# /usr/local/apache/bin/apachectl -M | grep deflate

deflate_module (static) #此种结果为编译安装时装的

[root@c64-web /]# /usr/local/apache/bin/apachectl -M | grep deflate

deflate_module (shared) #此种结果为DSO方式安装的

安装了的话,就可以直接进行压缩配置了,如果没有安装,下面为安装方法

a)编译时安装方法

编译的时候跟上--enable-deflate即可实现安装

b)DSO方式安装

[root@c64-web /]# cd /server/tools/;#切到apache源码包mod_deflate所在的目录下

[root@c64-web filters]# /usr/local/apache/bin/apxs -c -i -a mod_deflate.c #以dso的方式编译安装到apache中

[root@c64-web filters]# ll /usr/local/apache/modules/mod_deflate.so #检查mod_deflate是否安装,成功安装这里会显示出该文件

-rwxr-xr-x 1 root root 76697 11月 5 07:50 /usr/local/apache/modules/mod_deflate.so

扩展:使用DSO方式安装,apxs后跟的参数详解

-c 此选项表明需要执行编译操作。它首先会编译c源程序(.c)files为对应的目标代码文件(.c),然后连接这些目标代码和files中其余的目标代码文件(.c和.a),以生成动态共享对象dsofile。如果没有指定-s选项,则此输出文件名由files中的第一个文件名推测得出,也就是默认mod_name.so。

-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录。

-a 此选项自动增加一个LoadModule行到文件中,以激活此模块,或者,如果此行已经存在,则启用之。

压缩模块配置

2、配置压缩参数

注意如果我们是编译安装时已经编译进去的,此时我们需要先将主配置文件中

LoadModule deflate_module modules/mod_deflate.so

此行解锁后再进行下面操作,不然下面的操作会报错。

我们需要在虚拟机的

DeflateCompressionLevel 9 #压缩等级,越大效率越高,消耗CPU也越高

SetOutputFilter DEFLATE #启用压缩

AddOutputFilterByType DEFLATE text/html text/plain text/xml #仅压缩限制特定的MIME类型文件:

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE image/gif image/png image/jpe image/swf image/jpeg image/bmp

#DeflateFilterNote ratio #在日志中放置压缩率标记,下面是记录日志的,这个功能一般不用

#LogFormat '%r %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

#CustmLog logs/deflate_log.log deflate

下面是朋友公司的另外一种压缩配置,有兴趣的朋友们也可以操作操作。

DeflateCompressionLevel 9

SetOutputFilter DEFLATE

DeflateFilterNote Input instream #声明输入流的byte数量

DeflateFilterNote Output outstream #声明输出流的byte数量

DeflateFilterNote Ratio ratio #声明压缩的百分比

#LogFormat '%r %{outstream}n/%{instream}n (%{ratio}n%%)' deflate #声明日志类型

#CustomLog logs/deflate_log.log deflate #声明日志类型

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript #仅压缩限制特定的MIME类型文件

执行上面的添加后,我们对apache进行优雅重启

[root@c64-web /]# /usr/local/apache/bin/apachectl graceful

下面访问我们的网站,然后用火狐或者google游览器的YSLOW插件进行压缩效果的查看



关键词:

评论


相关推荐

技术专区

关闭