zoukankan      html  css  js  c++  java
  • 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两个文件放入路径:binapacheApache2.2.21modules 下。
    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  
    

    再在文件confextrahttpd-vhosts.conf中写入VirtualHost,如下:

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

    有些lamp环境没有confextrahttpd-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>
    转载于https://www.hbiger.com/index.php/archives/8/
  • 相关阅读:
    git push 出现 you are not allowed to upload merges 错误提示
    构建React-app应用时create-react-app卡住超慢的解决办法<转>
    防抖与节流函数<转>
    this全面解析<转>
    正确的安装和使用nvm(mac)<转>
    TypeScript如何添加自定义d.ts文件(转)
    为什么angular library的build不能将assets静态资源打包进去(转)
    Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    linux命令新建文件
    mac系统终端sudo免输入密码技能get
  • 原文地址:https://www.cnblogs.com/focai/p/11752681.html
Copyright © 2011-2022 走看看