apache2的mod_deflate安装使用手记
作者:hotfish 日期:2009-10-20
apache2的mod_deflate安装使用手记
创建 mod_deflate.so 文件。
先看一下,apache 的 modules 目录下有没有 mod_deflate.so 文件。
用 ls /usr/local/apache2/modules/ 看一下,如果没有,可以执行下面的命令创建。
/usr/local/apache2/bin/apxs -i -c /home/lsc/httpd-2.0.63/modules/filters/mod_deflate.c
说明:/usr/local/apache2/ 是apache安装后的目录;/home/lsc/httpd-2.0.63/ 是 apache 的原代码目录。
可以看到,该命令最后输出下面几行:
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_deflate.so
这说明 mod_deflate.so 文件已经生成了,存放在 /usr/local/apache2/modules/ 目录下。
三:更改 apache 的 http.conf 文件。
vi /usr/local/apache2/conf/http.conf ,加上下面的内容。
无高亮复制打印?
LoadModule deflate_module modules/mod_deflate.so
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/x-javascript text/css
</ifmodule>
LoadModule deflate_module modules/mod_deflate.so
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/x-javascript text/css
</ifmodule>
好了,重新启动一下 apache.
/usr/local/apache2/bin/apachectl restart
注意:不同浏览器对压缩的支持程度不一样,要更好的设计,可以参考文档
http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_deflate.html
不能添加的原因是下面的模组没有打开:
LoadModule headers_module modules/mod_headers.so
Apache deflate模块配置说明
前几天一直在找apache2.0以dso方式编译后加载deflate模块的办法
试了apxs -ica mod_deflate.c N次,始终是报
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate
异常的痛苦,什么ldd mod_deflate.so后再export LIB_LIBRARY_PATH呀,都试了N次,google也go了N天。终于在google上go出来一篇文章,终于解决,方法如下:
vi /usr/local/apache2/bin/apr-config
修改LDFLAGS=" " 为 LDFLAGS="-lz"
然后再apxs -ica mod_deflate.c
就OK了
另外在配置deflate规则时
apache2.0推荐加上这句
Header append Vary User-Agent env=!dont-vary
以便确保不会输出在压缩过程中出现内容方面的error
但一般情况下,在测试apache的语法过程中会现出
Invalid command ‘Header’, perhaps mis-spelled or defined by a module not included in the server configuration
解决办法就是加载一个headers模块就OK了
不过最好还是在编译apache模块时直接加上–enable-deflate –enable-headers就省事多了。
配置 Apache 实现禁止图片盗链
1、假设充许连结图片的主机域名为:www.demo.com.cn
2、修改httpd.conf
SetEnvIfNoCase Referer "^http://www.demo.com.cn/" local_ref=1
<FilesMatch ".(gif|jpg)">
order Allow,Deny
Allow from env=local_ref
</FilesMatch>
这个简单的应用不光可以解决图片盗链的问题,稍加修改还可以防止任意文件盗链下载的问题。
使用以上的方法当从非指定的主机连结图片时,图片将无法显示,如果希望显示一张“禁止盗链”的图片,我们可以用mod_rewrite 来实现。
首先在安装 apache 时要加上 –enable-rewrite 参数加载 mod_rewrite 模组。
假设“禁止盗链”的图片为abc.gif,我们在 httpd.conf 中可以这样配置:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www\.)?demo.com.cn /.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.demo.com.cn/abc.gif [R,L]
当主机的图片被盗链时,只会看到 abc.gif 这张“禁止盗链”的图片!
创建 mod_deflate.so 文件。
先看一下,apache 的 modules 目录下有没有 mod_deflate.so 文件。
用 ls /usr/local/apache2/modules/ 看一下,如果没有,可以执行下面的命令创建。
/usr/local/apache2/bin/apxs -i -c /home/lsc/httpd-2.0.63/modules/filters/mod_deflate.c
说明:/usr/local/apache2/ 是apache安装后的目录;/home/lsc/httpd-2.0.63/ 是 apache 的原代码目录。
可以看到,该命令最后输出下面几行:
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_deflate.so
这说明 mod_deflate.so 文件已经生成了,存放在 /usr/local/apache2/modules/ 目录下。
三:更改 apache 的 http.conf 文件。
vi /usr/local/apache2/conf/http.conf ,加上下面的内容。
无高亮复制打印?
LoadModule deflate_module modules/mod_deflate.so
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/x-javascript text/css
</ifmodule>
LoadModule deflate_module modules/mod_deflate.so
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/x-javascript text/css
</ifmodule>
好了,重新启动一下 apache.
/usr/local/apache2/bin/apachectl restart
注意:不同浏览器对压缩的支持程度不一样,要更好的设计,可以参考文档
http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_deflate.html
不能添加的原因是下面的模组没有打开:
LoadModule headers_module modules/mod_headers.so
Apache deflate模块配置说明
前几天一直在找apache2.0以dso方式编译后加载deflate模块的办法
试了apxs -ica mod_deflate.c N次,始终是报
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate
异常的痛苦,什么ldd mod_deflate.so后再export LIB_LIBRARY_PATH呀,都试了N次,google也go了N天。终于在google上go出来一篇文章,终于解决,方法如下:
vi /usr/local/apache2/bin/apr-config
修改LDFLAGS=" " 为 LDFLAGS="-lz"
然后再apxs -ica mod_deflate.c
就OK了
另外在配置deflate规则时
apache2.0推荐加上这句
Header append Vary User-Agent env=!dont-vary
以便确保不会输出在压缩过程中出现内容方面的error
但一般情况下,在测试apache的语法过程中会现出
Invalid command ‘Header’, perhaps mis-spelled or defined by a module not included in the server configuration
解决办法就是加载一个headers模块就OK了
不过最好还是在编译apache模块时直接加上–enable-deflate –enable-headers就省事多了。
配置 Apache 实现禁止图片盗链
1、假设充许连结图片的主机域名为:www.demo.com.cn
2、修改httpd.conf
SetEnvIfNoCase Referer "^http://www.demo.com.cn/" local_ref=1
<FilesMatch ".(gif|jpg)">
order Allow,Deny
Allow from env=local_ref
</FilesMatch>
这个简单的应用不光可以解决图片盗链的问题,稍加修改还可以防止任意文件盗链下载的问题。
使用以上的方法当从非指定的主机连结图片时,图片将无法显示,如果希望显示一张“禁止盗链”的图片,我们可以用mod_rewrite 来实现。
首先在安装 apache 时要加上 –enable-rewrite 参数加载 mod_rewrite 模组。
假设“禁止盗链”的图片为abc.gif,我们在 httpd.conf 中可以这样配置:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www\.)?demo.com.cn /.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.demo.com.cn/abc.gif [R,L]
当主机的图片被盗链时,只会看到 abc.gif 这张“禁止盗链”的图片!
评论: 0 | 引用: 0 | 查看次数: 136
发表评论
你没有权限发表评论!
上一篇
下一篇


文章来自:
Tags: 





