【记】apache应用concatx模块合并多个js/css;gzip压缩

静态资源合并加载

在nginx中使用nginx-http-concat可以把多个CSS和JS合并成一个请求的Nginx模块,对于Web性能优化非常有意义。apache可以用mod_concatx模块实现同样功能

wamp环境
1.首先下载mod_concatx;将mod_concatx.dll和mod_concatx.c两个文件放入路径:bin\apache\Apache2.2.21\modules 下。
2.然后打开apache配置文件httpd.conf中的
LoadModule concatx_module modules/mod_concatx.dll
3.合并引用http://www.example.com/js/??js1.js,js2.js,js3.js 服务器将这几个js合并后以一个文件返回给浏览器。
4.若apache无法启动,请安装vc10运行库 32位 64位
lamp环境
1.编译 mod_concatx 模块:
$ wget --no-check-certificat https://raw.githubusercontent.com/chenweiqi/apmod/master/mod_concatx/mod_concatx.c
$ ln -s /usr/local/apache/bin/apxs /usr/local/bin/apxs
$ apxs -c mod_concatx.c
2.编译并安装mod_concatx模块
$ apxs -iac mod_concatx.c
这种编译方式会自动安装Apache模块,安装成功后,可以在Apache 模块目录找到 mod_concatx.so,并且 conf/httpd.conf 配置也会加上 mod_concatx 模块信息

gzip压缩

HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的

1.编辑 http.conf 文件
去掉 #LoadModule headers_module modules/mod_headers.so 前面的注释#
去掉 #LoadModule deflate_module modules/mod_deflate.so 前面的注释#
去掉 #LoadModule filter_module modules/mod_filter.so 前面的注释#
2.写配置信息,gzip压缩一般适合压缩文本文件,常用的设置:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/php
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>
3.注:apache2.4的配置文件格式:
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd- php
AddOutputFilter DEFLATE css js

多站点配置,http跳转至https

1.一台服务器配置多个二级域名站点,需要设置VirtualHost.首相要在conf/httpd.conf文件中去掉下面两句的注释:

 #LoadModule vhost_alias_module modules/mod_vhost_alias.so
 #Include conf/extra/httpd-vhosts.conf  
再在文件conf\extra\httpd-vhosts.conf中写入VirtualHost,如下:

<VirtualHost *:80>
 DocumentRoot /yjdata/www/myblog  (linux)
 DocumentRoot "D:/xampp/htdocs/cms" (windows)
 ServerName www.hbiger.com
</VirtualHost>

有些lamp环境没有conf\extra\httpd-vhosts.conf文件,可将VirtualHost直接写在conf/httpd.conf文件中,但是也要将其中的"#NameVirtualHost *:80"语句的注释去掉

2.当我们的站点可以通过https访问时,我们需要将http的访问调至https.首先在conf/httpd.conf文件中去掉下面语句的注释:

#LoadModule rewrite_module modules/mod_rewrite.so

接着,一种方法是在网站根目录添加.htaccess文件:

<IfModule mod_rewrite.c>
 //.htaccess
 RewriteEngine On
 RewriteBase /
 RewriteCond %{SERVER_PORT} 80
 RewriteRule ^(.*)$ https://www.hbiger.com/$1 [R=301,L]
</IfModule>

这样便实现了http访问站点时自动跳转至https,注意.htaccess文件必须保存为ANSI格式.

.htaccess文件的生效需要两步:

1.开启重启模块

2.同样的在httpd.conf 中找到下面的脚本,把None改成All

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

 欢迎转载:转载时请注明本文出处及文章链接

标签:


添加新评论

captcha
请输入验证码