`
liuhaixiao
  • 浏览: 148683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apahce2.2.4 gzip压缩以及支持中文目录

阅读更多

需求一: 提高apache2.2.4 的访问速度,开启gzip压缩模块

解决办法:

 参考地址1:http://blog.penner.cn/2007/04/04/apache2-mod_deflate.html

 参考地址2:http://bbs.51cto.com/thread-499764-1.html

 监测是否支持gizp 压缩 http://gzip.zzbaike.com/

          Apache启用deflate压缩在 apache 1.3 版本,大家常用 mod_gzip 对输出内容进行压缩,现在主流的浏览器都支持 gzip 解压缩。

          在 apache2 下,这个模块换名为 mod_deflate,对应的模块文件名是 mod_deflate.so。下面描述一下在 Apache 2 下如何启用并配置 mod_deflate 模块。默认安装的 Apache 不管是 Windows 还是 Linux/Unix,都是不启用该模块的, Linux/Unix 下甚至不带该模块,你需要手工编译这个模块。

         下面我们分别介绍在 Windows 和 Linux 操作系统下如何启用并配置 mod_deflate 模块。在 Windows 下采用安装程序安装的 Apache 服务器已经带有 deflate 所需要的模块 mod_deflate.so 和 mod_headers.so,我们只需要在 httpd.conf 配置文件中启用并进行相关的配置即可,配置如下:

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

# Insert filter SetOutputFilter DEFLATE

# Netscape 4.x has some problems...

BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems

BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine

# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48

# the above regex won't work. You can use the following

# workaround to get the desired effect:

BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Don't compress images

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content

eader append Vary User-Agent env=!dont-vary

        而如果是 Linux/Unix 操作系统,如果你没有在编译安装的过程中将所需要的两个模块 mod_deflate 和 mod_headers 编译进去的话,那就稍微有点麻烦,首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块,请在执行 configure 程序时增加两个参数分别是: # ./configure --enable-deflate --enable-headers 这样在编译完 Apache 后就可以直接在 httpd.conf 中启用并配置 deflate 模块了,配置的方法跟 Windows 平台下是相同的。如果说您的 Apache 已经在运行了,不想再重新编译一次,那也可以选择只编译 deflate 模块所需的文件 mod_deflate.c 和 mod_headers.c。

       这两个文件位于 {apache-src}/modules/filters/ 目录下(其中 {apache-src} 为 apache 源文件所在的目录)。使用如下命令来单独编译这两个源文件。

    # {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c

    # {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c

When install the header module the src directory is {apache-src}/modules/metadata/mod_headers.c So we need change the command as follows:{apache-bin}/apxs -i -a -c {apache-src}/modules/metadata/mod_headers.c 其中 {apache-bin} 为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。

      很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误,提示是: Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate 解决的方法如下:编辑 /usr/local/apache2/bin/apr-config 文件修改其中的 LDFLAGS 值为 "-lz"然后再重新编译 mod_deflate 模块,apxs -ica mod_deflate.c 即可。为了省却不必要的麻烦,请尽量在编译安装时直接加上 --enable-deflate --enable-headers 参数。

 

需求二: apache2.2.4 支持中文目录

参考地址:http://blog.freebug.org/?p=212

 

解决办法:

Apache自身并不支持中文目录,但是目前日本的webdev提供了mod_encoding插件来支持多字节目录。
在AS5和Everest0.5pre2版本上测试通过,记录如下:
1)首先确定安装了httpd-devel包。如果没有安装之
2)从官方分别下载基本包和补丁包

#wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
#wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616

或者可以下载文末提供的已经打好补丁的压缩包
3)解压基本包,并用mod_encoding.c.apache2.20040616替代基本包里的mod_encoding.c

#tar -xzf mod_encoding-20021209.tar.gz
#cd mod_encoding-20021209
#cp -f ../mod_encoding.c.apache2.20040616  mod_encoding.c
4)编译安装iconv_look库

# cd mod_encoding-20021209/lib/
# ./configure && make && make install
#echo “/usr/local/lib” >>/etc/ld.so.conf.d/local.conf
#ldconfig
5)编译安装mod_encoding模块

#cd mod_encoding-20021209
#./configure –with-apxs=/usr/sbin/apxs –with-iconv-hook=/usr/local/include
#make

注:如果5)步骤出现下面的报错

mod_encoding.c:235: error: ‘regex_t’ undeclared (first use in this function)

请在mod_encoding.c文件中加上regex.h头,也就是加入
#include <regex.h>
一行。然后再编译。
6)安装动态库
如果前面步骤都没有错误,则应该在当前目录能看到mod_encoding.o文件,接下来该目标文件做成共享的动态库

# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook

将生成的mod_encoding.so文件拷贝到Apache的动态模块库目录中去

cp mod_encoding.so /usr/local/httpd/modules/

我们采用创建新的conf文件来加载该so文件

#cat >/etc/httpd/conf.d/cndir.conf
LoadModule encoding_module modules/mod_encoding.so
<IfModule mod_headers.c>
Header add MS-Author-Via “DAV”
</IfModule>
<IfModule mod_encoding.c>
 EncodingEngine    on
 NormalizeUsername on
 SetServerEncoding GBK
 DefaultClientEncoding UTF-8 GBK GB2312
 AddClientEncoding “(Microsoft .* DAV $)” UTF-8 GBK GB2312
 AddClientEncoding “Microsoft .* DAV” UTF-8 GBK GB2312
 AddClientEncoding “Microsoft-WebDAV*” UTF-8 GBK GB2312
</IfModule>
<CTRL+D>
当然SetServerEncoding UTF-8这样可以设置成你希望的默认编码,比如GBK,比如GB2312.
重启Apache。现在测试中文目录,看看效果。

 

分享到:
评论

相关推荐

    apahce2.2.4整合tomcat6.0.016

    LoadModule jk_module modules/mod_jk-apache-2.2.4.so JkWorkersFile conf/workers.properties JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" JkMount /servlet...

    PHPstart v1.0

    该程序包集成最新的Apache+PHP+MySQL+ZendOptimizer,一次性安装,无须配置即可使用,免安装,是非常方便、快递搭建Web...2、该程序包集成以下软件APAHCE2.2.4MySQL5.0.45PHP5.2.4ZendOptimizer 3.3.0phpMyAdmin 2.1.1

    apahce mina技术文档

    `IoService`提供了一些关键方法,如`addListener()`用于添加监听器来监听服务相关的事件,`getDefaultConfig()`返回默认配置,以及`getManagedServiceAddresses()`用于获取服务管理的所有Socket地址。 `...

    eclipse php mysql apahce xampp

    eclipse php mysql apahce xampp php环境配置

    在Apahce实现基于域名虚拟主机

    基于主机头的虚拟主机 照着图片的配置 调试一下就可以了!

    快捷配置apache虚拟目录和HOSTS文件

    本文将深入探讨如何快速配置Apache虚拟目录以及编辑HOSTS文件,这对于学习和开发PHP应用至关重要。 首先,让我们理解Apache虚拟目录的概念。在Apache服务器中,虚拟目录允许我们为不同的网站或项目设置独立的访问...

    Ubuntu Apahce2.4下无法访问JS目录的问题解决

    ### Ubuntu Apache2.4 下无法访问 JS 目录的问题及解决方法 #### 问题背景 在使用 Ubuntu 系统下的 Apache 2.4 服务器时,可能会遇到无法访问特定目录的情况,例如本例中的“javascript”目录。用户访问该目录时会...

    配制Apahce作为Weblogic的前端服务器

    2. **检查DSO支持**:Apache必须支持DSO(Dynamic Shared Object)。可以通过执行`Apache_home/bin/httpd -l`命令来检查是否已经支持。如果列出的模块中包含`mod_so.c`,则表示已支持。如果不支持,则需要重新编译...

    WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置

    标题中提及的是在Windows操作系统下如何配置PHP 5.2.4、MySQL 6.0、Apache 2.2.4以及ZendOptimizer-3.3.0。这些软件组件是搭建动态网站和Web应用程序的基础,常常用于PHP开发环境。Apache是Web服务器软件,MySQL是...

    Apahce日志文件配置

    在配置文件中,找到`VirtualHost`或`&lt;Directory&gt;`块,这些块定义了特定网站或目录的配置。在这些块中,添加以下行来指定新的日志文件: ```apacheconf CustomLog "path/to/xxx.log" format ``` `path/to/xxx.log` ...

    apahce helix设计论文

    这些系统必须处理软硬件故障,设置任务如数据引导,以及操作问题如数据放置、负载均衡、计划升级和集群扩展。 Apache Helix提供了一种抽象,使系统开发人员能够将分布式系统的协调和管理任务与组件功能任务分离。...

    珍藏版svn与apahce整合

    它支持分支管理,使得开发者可以并行地开发代码,同时保持代码的一致性和完整性。 **Apache HTTP Server (Apache)** 是最流行的 Web 服务器,能够托管静态和动态内容。当与 SVN 整合时,Apache 可以作为一个安全的...

    apahce-nutch-2.1

    6. **配置与扩展性**:Nutch设计灵活,支持自定义配置,用户可以根据需求调整抓取策略、过滤规则等。此外,由于是基于Hadoop的,Nutch可以在大规模分布式环境中运行,轻松处理海量数据。 7. **插件系统**:Nutch的...

    Apahce整合Tomcat

    5. **mod_jk配置**:配置`mod_jk`涉及到在Apache的配置文件(如httpd.conf)中加载模块,设置工作目录,定义worker.properties文件,以及配置虚拟主机。worker.properties文件定义了Tomcat实例的属性,如IP地址、...

    apahce 和 weblogic 集群(基于域名)

    - 将mod_wl_20.so插件移动到Apache的modules目录,以便在启动时加载。 4. **具体配置**: - 修改`/usr/local/apache/conf/httpd.conf`,将DocumentRoot和设置为第一个应用的路径。 - 加载WebLogic模块:`...

    winserver2008下apahce连多个tomcat下效率问题

    本文可能讨论了在这样的架构中可能出现的性能瓶颈以及解决策略。 描述中虽然没有具体信息,但可以推测博主可能分享了在实际操作过程中遇到的问题和解决方案。可能的内容包括: 1. **Apache与Tomcat的连接方式**:...

    apahce log4j-api

    基于rc2版本构建打包,源码地址https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

    apahce cook book

    安装过程中可以选择安装位置以及是否将Apache添加到系统服务中等选项。 #### 1.4 下载Apache源码 如果用户需要对Apache进行定制化开发或调试,则可以从官方网站下载源代码包。访问Apache官网的下载页面,选择最新的...

    apache_2.2.8-win32-x86-no_ssl.msi

    3. **模块化结构**:Apache通过模块化设计,可以灵活添加或移除功能,如mod_rewrite用于URL重写,mod_security用于增强安全性,mod_deflate用于内容压缩等。 4. **高性能**:Apache采用了预读取(prefork)或多进程...

Global site tag (gtag.js) - Google Analytics