歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> CentOS Apache下安裝配置mod

CentOS Apache下安裝配置mod

日期:2017/2/27 14:57:52   编辑:Linux配置
# 32位
# wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.rpm
# 64位
# https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_x86_64.rpm
# mkdir mod-pagespeed
# cd mod-pagespeed
# rpm2cpio ../mod-pagespeed-beta_current_i386.rpm | cpio -idmv
# cp ./etc/httpd/conf.d/pagespeed.conf /usr/local/apache2/conf/
# cp ./usr/lib/httpd/modules/mod_pagespeed.so /usr/local/apache2/modules/
# chmod 755 /usr/local/apache2/modules/mod_pagespeed.so
# mkdir /var/mod_pagespeed/{cache,files} -p
# chown nobody:nobody /var/mod_pagespeed/*

mod_pagespeed 需要 Apache 加載 mod_deflate(一個將 web 內容 gzip 壓縮後傳輸的模塊)。

之後用你習慣的編輯器打開 /usr/local/apache/conf/pagespeed.conf,將第一行修改為:

LoadModule pagespeed_module /usr/local/apache2/modules/mod_pagespeed.so

編輯 /usr/local/apache/conf/httpd.conf 在開頭的 Include 部分加入:

Include conf/pagespeed.conf

之後重啟 Apache:
/usr/local/apache2/bin/apachectl -k restart

mod_pagespped模塊需要deflate的支持。
如何安裝apache的deflate壓縮?
關於mod_deflate的詳細內容,可以參考:http://www.linuxeye.com/Linux/412.html

1. 查找模塊deflate
find / -name mod_deflate.c

一般都在安裝目錄下,這裡我的模塊在/root/build/httpd-2.2.17/modules/filters/mod_deflate.c
cd /root/build/httpd-2.2.17/modules/filters/mod_deflate.c

2. 安裝mod_deflate
/usr/local/apache2/bin/apxs  -i -c -a 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 。

3. 配置mod_deflate
vi /usr/local/apache2/conf/httpd.conf
LoadModule deflate_module     modules/mod_deflate.so

此LoadModule需要放在libphp5.so之後
<IfModule mod_deflate.c>
 DeflateCompressionLevel 7
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
 AddOutputFilter DEFLATE css js
</IfModule>

如果遇到httpd: Syntax error on line 419 of /web/apache2/conf/httpd.conf: module deflate_module is built-in and can't be loaded
解決方案:出現這個情況,表明deflate_module模塊是內建的,不用再調入,所以只需要把LoadModule *** 注釋就可以了

壓縮等級的調整有兩種說法,不過懶得研究了,默認等級是6,890k的文件壓縮出來的數據和最高的9級只差1k,而且9級需要更多的CPU時間,用默認的6級就可以了。

另外,有個Real-Time Compression Check工具,可以檢測某個URL是否是壓縮傳輸的。好像這家公司做IIS下的zip壓縮程序,所以弄了這麼個在線工具。只要輸入你的地址,回車,就可以看到服務器類型、是否是壓縮傳輸以及壓縮前和壓縮後的大小比較。大多數情況下html代碼都能壓縮到1/4~1/3,gzip壓縮傳輸還是很不錯的。

如果是新安裝apache,直接加上 –enable-headers –enable-deflate 即可

配置mod_pagespeed
LoadModule pagespeed_module /usr/local/apache2/modules/mod_pagespeed.so
 
<IfModule !mod_deflate.c>
    LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
    DeflateCompressionLevel 6
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
    AddOutputFilter DEFLATE css js
</IfModule>
<IfModule pagespeed_module>
    ModPagespeed ON
    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
    ModPagespeedFileCachePath            "/var/mod_pagespeed/cache/"
    ModPagespeedGeneratedFilePrefix      "/var/mod_pagespeed/files/"
 
    #保留頁面中原有格式,注釋的話會把包含的js引入到頁面中
    ModPagespeedRewriteLevel PassThrough
    ModPagespeedEnableFilters add_instrumentation
 
    #不把圖片轉換成二進制格式
    ModPagespeedDisableFilters rewrite_images
    #壓縮JS
    ModPagespeedEnableFilters rewrite_javascript
    ModPagespeedEnableFilters collapse_whitespace,elide_attributes
 
    <Location /mod_pagespeed_statistics>
        Order allow,deny
        Allow from localhost
        SetHandler mod_pagespeed_statistics
    </Location>
</IfModule>
請注意,mod_pagespeed 目前仍然處於 Beta 階段,據信它會大量執行寫操作於 /var/mod_pagespeed/ 以及 Apache 的日志文件,會消耗一定的資源。
Copyright © Linux教程網 All Rights Reserved