热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装配置Apache服务器的mod_deflate模块

测试平台:ThinkpadR60RHEL5Apache2.2.61编译mod_deflate模块#/usr/local/apache2/bin/apxs-i-c-a/home/sense/software/server/httpd-2.2.6/modules/filters/mod_deflate.capxs命令参数说
测试平台:
Thinkpad R60
RHEL 5
Apache 2.2.6

1>编译mod_deflate模块
#/usr/local/apache2/bin/apxs -i -c -a /home/sense/software/server/httpd-2.2.6/modules/filters/mod_deflate.c
apxs命令参数说明:
-i  此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a  此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A  与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c  此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。
#vi http.conf
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule’ lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l’) do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module        modules/libphp5.so
LoadModule deflate_module     modules/mod_deflate.so
#

2>配置apache使用deflate模块
设置php.ini,关闭其自身的压缩机制:
#vi /usr/local/php/lib/php.ini
=================================================
output_buffering = Off
output_handler =
zlib.output_compression = Off
=================================================
设置http.conf:
#vi /usr/local/apache2/conf/httpd.conf
=============================================================================
LoadModule php5_module        modules/libphp5.so
LoadModule deflate_module     modules/mod_deflate.so
#---------mod_deflate module confiugration--------------------
SetOutputFilter DEFLATE
DeflateCompressionLevel Array
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
#Explicit exclusion of files.
SetEnvIfNoCase Request_URI \.(?:gif|jpg|cab|jpe?g|exe|bmp|mp3|rar|zip|swf|png)$ no-gzip dont-vary
#Cache server support.
Header append Vary User-Agent env=!dont-vary
#logs.
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat ’"%r" %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate
CustomLog logs/deflate_log deflate
#-------------------------------------------------------------
==============================================================================

3>错误处理:
# /usr/local/apache2/bin/apachectl -t
Syntax error on line 423 of /usr/local/apache2/conf/httpd.conf:
Invalid command ’Header’, perhaps misspelled or defined by a module not included in the server configuration
解决方案:安装mod_headers.c模块
/usr/local/apache2/bin/apxs -i -c -a /home/sense/software/server/httpd-2.2.6/modules/metadata/mod_headers.c
重新测试:
# /usr/local/apache2/bin/apachectl -t
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

4>日志检测
#tail deflate_log
"GET /extmail/default/images/Sent.gif HTTP/1.1" -/- (-%)
"GET /extmail/default/images/purge.gif HTTP/1.1" -/- (-%)
"GET /extmail/cgi/netdisk.cgi?__mode=list_dir&sid=4a8fdafe221adArraydbb5711c16e6280f54 HTTP/1.1" 3247/Array114 (35%)
"GET /extmail/cgi/pref.cgi?__mode=pref_list&sid=4a8fdafe221adArraydbb5711c16e6280f54 HTTP/1.1" 3246/12568 (25%)
"GET /extmail/cgi/folders.cgi?__mode=folders_list&sid=4a8fdafe221adArraydbb5711c16e6280f54&mbmgr=1 HTTP/1.1" 3250/13053 (24%)
"GET /extmail/cgi/abook.cgi?__mode=abook_show&sid=4a8fdafe221adArraydbb5711c16e6280f54 HTTP/1.1" 30Array2/Array281 (33%)
"GET /extmail/cgi/compose.cgi?sid=4a8fdafe221adArraydbb5711c16e6280f54 HTTP/1.1" 10627/54013 (1Array%)
"GET /extmail/cgi/abook.cgi?sid=4a8fdafe221adArraydbb5711c16e6280f54&show_all=1&screen=abookac.html HTTP/1.1" 3027/Array406 (32%)
"GET /extmail/cgi/index.cgi?__mode=logout&sid=4a8fdafe221adArraydbb5711c16e6280f54 HTTP/1.1" ArrayArray7/2656 (37%)
"GET /extmail/cgi/index.cgi HTTP/1.1" 3113/Array108 (34%)

推荐阅读
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • 本文详细介绍了五种常用的PHP排序算法——冒泡排序、选择排序、插入排序、希尔排序和堆排序。每种算法都附有代码示例,并通过打印和延时操作来直观展示排序过程。欢迎指出任何错误。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
author-avatar
学银先生_512
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有