apache2.2配置
4.3.2 配置主配置文件
????????? 用vi或其它文件編輯器編輯主配置文件httpd.conf :
vi /usr/local/apache-2.2.6/conf/httpd.conf
????????? 按下面提示進行修改:
###=========httpd.conf begin===================
##Apache主配置文件
##設置服務器的基礎目錄,默認為Apache安裝目錄
ServerRoot "/usr/local/apache-2.2.6"
##設置服務器監聽的IP和端口
Listen 80
##設置管理員郵件地址
ServerAdminwebmaster@foxbb.com
##設置服務器用于辨識自己的主機名和端口號
ServerNamewww.foxbb.com:80
###設置動態加載的DSO模塊
##如果需要提供基于文本文件的認證,加載此模塊,否則注釋掉
LoadModule authn_file_module modules/mod_authn_file.so
##如果需要提供基于DBM文件的認證,加載此模塊,否則注釋掉
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
##如果需要提供匿名用戶認證,加載此模塊,否則注釋掉
#LoadModule authn_anon_module modules/mod_authn_anon.so
##如果需要提供基于SQL數據庫的認證,加載此模塊,否則注釋掉
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
##如果需要在未正確配置認證模塊的情況下簡單拒絕一切認證信息,加載此模塊,否則注釋掉
LoadModule authn_default_module modules/mod_authn_default.so
##此模塊提供基于主機名、IP地址、請求特征的訪問控制,Allow、Deny指令需要,推薦加載。
LoadModule authz_host_module modules/mod_authz_host.so
##如果需要使用純文本文件為組提供授權支持,加載此模塊,否則注釋掉
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
##如果需要提供基于每個用戶的授權支持,加載此模塊,否則注釋掉
LoadModule authz_user_module modules/mod_authz_user.so
##如果需要使用DBM文件為組提供授權支持,加載此模塊,否則注釋掉
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
##如果需要基于文件的所有者進行授權,加載此模塊,否則注釋掉
#LoadModule authz_owner_module modules/mod_authz_owner.so
##如果需要在未正確配置授權支持模塊的情況下簡單拒絕一切授權請求,加載此模塊,否則注釋掉
LoadModule authz_default_module modules/mod_authz_default.so
##如果需要提供基本的HTTP認證,加載此模塊,否則注釋掉,此模塊至少需要同時加載一個認證支持模塊和一個授權支持模塊
LoadModule auth_basic_module modules/mod_auth_basic.so
##如果需要提供HTTP MD5摘要認證,加載此模塊,否則注釋掉,此模塊至少需要同時加載一個認證支持模塊和一個授權支持模塊
#LoadModule auth_digest_module modules/mod_auth_digest.so
##此模塊提供文件描述符緩存支持,從而提高Apache性能,推薦加載,但請小心使用
LoadModule file_cache_module modules/mod_file_cache.so
##此模塊提供基于URI鍵的內容動態緩存(內存或磁盤),從而提高Apache性能,必須與mod_disk_cache/mod_mem_cache同時使用,推薦加載
LoadModule cache_module modules/mod_cache.so
##此模塊為mod_cache提供基于磁盤的緩存管理,推薦加載
LoadModule disk_cache_module modules/mod_disk_cache.so
##此模塊為mod_cache提供基于內存的緩存管理,推薦加載
LoadModule mem_cache_module modules/mod_mem_cache.so
##如果需要管理SQL數據庫連接,為需要數據庫功能的模塊提供支持,加載此模塊,否則注釋掉(推薦)
#LoadModule dbd_module modules/mod_dbd.so
##此模塊將所有I/O操作轉儲到錯誤日志中,會導致在日志中寫入及其海量的數據,只建議在發現問題并進行調試的時候使用
#LoadModule dumpio_module modules/mod_dumpio.so
##如果需要使用外部程序作為過濾器,加載此模塊(不推薦),否則注釋掉
#LoadModule ext_filter_module modules/mod_ext_filter.so
##如果需要實現服務端包含文檔(SSI)處理,加載此模塊(不推薦),否則注釋掉
#LoadModule include_module modules/mod_include.so
##如果需要根據上下文實際情況對輸出過濾器進行動態配置,加載此模塊,否則注釋掉
LoadModule filter_module modules/mod_filter.so
##如果需要服務器在將輸出內容發送到客戶端以前進行壓縮以節約帶寬,加載此模塊(推薦),否則注釋掉
LoadModule deflate_module modules/mod_deflate.so
##如果需要記錄日志和定制日志文件格式,加載此模塊(推薦),否則注釋掉
LoadModule log_config_module modules/mod_log_config.so
##如果需要對每個請求的輸入/輸出字節數以及HTTP頭進行日志記錄,加載此模塊,否則注釋掉
#LoadModule logio_module modules/mod_logio.so
##如果允許Apache修改或清除傳送到CGI腳本和SSI頁面的環境變量,加載此模塊,否則注釋掉
LoadModule env_module modules/mod_env.so
##如果允許通過配置文件控制HTTP的"Expires:"和"Cache-Control:"頭內容,加載此模塊(推薦),否則注釋掉
LoadModule expires_module modules/mod_expires.so
##如果允許通過配置文件控制任意的HTTP請求和應答頭信息,加載此模塊,否則注釋掉
LoadModule headers_module modules/mod_headers.so
##如果需要實現RFC1413規定的ident查找,加載此模塊(不推薦),否則注釋掉
#LoadModule ident_module modules/mod_ident.so
##如果需要根據客戶端請求頭字段設置環境變量,加載此模塊,否則注釋掉
LoadModule setenvif_module modules/mod_setenvif.so
##此模塊是mod_proxy的擴展,提供Apache JServ Protocol支持,只在必要時加載
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
##此模塊是mod_proxy的擴展,提供負載均衡支持,只在必要時加載
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
##如果需要根據文件擴展名決定應答的行為(處理器/過濾器)和內容(MIME類型/語言/字符集/編碼),加載此模塊,否則注釋掉
LoadModule mime_module modules/mod_mime.so
##如果允許Apache提供DAV協議支持,加載此模塊,否則注釋掉
#LoadModule dav_module modules/mod_dav.so
##此模塊生成描述服務器狀態的Web頁面,只建議在追蹤服務器性能和問題時加載
#LoadModule status_module modules/mod_status.so
##如果需要自動對目錄中的內容生成列表(類似于"ls"或"dir"命令),加載此模塊(會帶來安全問題,不推薦),否則注釋掉
#LoadModule autoindex_module modules/mod_autoindex.so
##如果需要服務器發送自己包含HTTP頭內容的文件,加載此模塊,否則注釋掉
#LoadModule asis_module modules/mod_asis.so
##如果需要生成Apache配置情況的Web頁面,加載此模塊(會帶來安全問題,不推薦),否則注釋掉
#LoadModule info_module modules/mod_info.so
##如果需要在非線程型MPM(prefork)上提供對CGI腳本執行的支持,加載此模塊,否則注釋掉
#LoadModule cgi_module modules/mod_cgi.so
##此模塊在線程型MPM(worker)上用一個外部CGI守護進程執行CGI腳本,如果正在多線程模式下使用CGI程序,推薦替換mod_cgi加載,否則注釋掉
#LoadModule cgid_module modules/mod_cgid.so
##此模塊為mod_dav訪問服務器上的文件系統提供支持,如果加載mod_dav,則也應加載此模塊,否則注釋掉
#LoadModule dav_fs_module modules/mod_dav_fs.so
##如果需要提供大批量虛擬主機的動態配置支持,加載此模塊,否則注釋掉
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
##如果需要提供內容協商支持(從幾個有效文檔中選擇一個最匹配客戶端要求的文檔),加載此模塊(推薦),否則注釋掉
LoadModule negotiation_module modules/mod_negotiation.so
##如果需要指定目錄索引文件以及為目錄提供"尾斜杠"重定向,加載此模塊(推薦),否則注釋掉
LoadModule dir_module modules/mod_dir.so
##如果需要處理服務器端圖像映射,加載此模塊,否則注釋掉
#LoadModule imagemap_module modules/mod_imagemap.so
##如果需要針對特定的媒體類型或請求方法執行CGI腳本,加載此模塊,否則注釋掉
#LoadModule actions_module modules/mod_actions.so
##如果希望服務器自動糾正URL中的拼寫錯誤,加載此模塊(推薦),否則注釋掉
LoadModule speling_module modules/mod_speling.so
##如果允許在URL中通過"/~username"形式從用戶自己的主目錄中提供頁面,加載此模塊,否則注釋掉
#LoadModule userdir_module modules/mod_userdir.so
##此模塊提供從文件系統的不同部分到文檔樹的映射和URL重定向,推薦加載
LoadModule alias_module modules/mod_alias.so
##如果需要基于一定規則實時重寫URL請求,加載此模塊(推薦),否則注釋掉
LoadModule rewrite_module modules/mod_rewrite.so
##設置子進程的用戶和組
<IfModule !mpm_netware_module>
User daemon
Group daemon
</IfModule>
##設置默認WEB文檔根目錄
DocumentRoot "/usr/local/apache-2.2.6/htdocs"
##設置WEB文檔根目錄的默認屬性
<Directory />
??? Options FollowSymLinks
??? AllowOverride None
??? Order deny,
allow
??? Deny from all
</Directory>
##設置DocumentRoot指定目錄的屬性
<Directory "/usr/local/apache-2.2.6/htdocs">
??? Options FollowSymLinks
??? AllowOverride None
??? Order allow,deny
??? Allow from all
</Directory>
##設置默認目錄資源列表文件
<IfModule dir_module>
??? DirectoryIndex index.html
</IfModule>
##拒絕對.ht開頭文件的訪問,以保護.htaccess文件
<FilesMatch "^\.ht">
??? Order allow,deny
??? Deny from all
??? Satisfy All
</FilesMatch>
##指定錯誤日志文件
ErrorLog logs/error_log
##指定記錄到錯誤日志的消息級別
LogLevel warn
<IfModule log_config_module>
##定義訪問日志的格式
??? LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
??? LogFormat "%h %l %u %t \"%r\" %>s %b" common
??? <IfModule logio_module>
????? LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
??? </IfModule>
##指定訪問日志及使用的格式
??? CustomLog logs/access_log combined
</IfModule>
##設定默認CGI腳本目錄及別名
<IfModule alias_module>
??? ScriptAlias /cgi-bin/ "/usr/local/apache-2.2.6/cgi-bin/"
</IfModule>
##在以線程式MPM(worker)運行的Apache中設置用來與CGI守護進程通信的套接字文件名前綴
<IfModule cgid_module>
??? Scriptsock logs/cgisock
</IfModule>
##設定默認CGI腳本目錄的屬性
<Directory "/usr/local/apache-2.2.6/cgi-bin">
??? AllowOverride None
??? Options None
??? Order allow,deny
??? Allow from all
</Directory>
##設定默認MIME內容類型
DefaultType text/plain
<IfModule mime_module>
##指定MIME類型映射文件
??? TypesConfig conf/mime.types
##增加.Z .tgz的類型映射
??? AddType application/x-compress .Z
??? AddType application/x-gzip .gz .tgz
</IfModule>
##啟用內存映射
EnableMMAP on
##使用操作系統內核的sendfile支持來將文件發送到客戶端
EnableSendfile on
##指定多路處理模塊(MPM)配置文件并將其附加到主配置文件
Include conf/extra/httpd-mpm.conf
##指定多語言錯誤應答配置文件并將其附加到主配置文件
Include conf/extra/httpd-multilang-errordoc.conf
##指定目錄列表配置文件并將其附加到主配置文件
#Include conf/extra/httpd-autoindex.conf
##指定語言配置文件并將其附加到主配置文件
Include conf/extra/httpd-languages.conf
##指定用戶主目錄配置文件并將其附加到主配置文件
#Include conf/extra/httpd-userdir.conf
##指定用于服務器信息和狀態顯示的配置文件并將其附加到主配置文件
#Include conf/extra/httpd-info.conf
##指定提供Apache文檔訪問的配置文件并將其附加到配置文件
#Include conf/extra/httpd-manual.conf
##指定DAV配置文件并將其附加到主配置文件
#Include conf/extra/httpd-dav.conf
##指定與Apache服務自身相關的配置文件并將其附加到主配置文件
Include conf/extra/httpd-default.conf
##指定mod_deflate壓縮模塊配置文件并將其附加到主配置文件
Include conf/extra/httpd-deflate.conf
##指定mod_expires模塊配置文件并將其附加到主配置文件
Include conf/extra/httpd-expires.conf
##指定虛擬主機配置文件并將其附加到主配置文件
#Include conf/extra/httpd-vhosts.conf
##指定SSL配置文件并將其附加到主配置文件
Include conf/extra/httpd-ssl.conf
##SSL默認配置
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
###==========httpd.conf end===================
4.3.3 配置多路處理模塊(MPM)
???????? 編輯多路處理模塊配置文件:
???????? vi /usr/local/apache-2.2.6/conf/extra/httpd-mpm.conf?
???????? 如果使用prefork多路處理模塊,按下面的提示修改:
###=============httpd-mpm.conf prefork begin===================
##設置prefork多路處理模塊
<IfModule mpm_prefork_module>
??? StartServers????????? 5
??? MinSpareServers?????? 5
??? MaxSpareServers????? 10
??? ServerLimit 4000
??? MaxClients???????? 4000
??? MaxRequestsPerChild?? 0
</IfModule>
###=============httpd-mpm.conf prefork end===================
指令說明:
StartServers:設置服務器啟動時建立的子進程數量。因為子進程數量動態的取決于負載的輕重,所有一般沒有必要調整這個參數。
MinSpareServers:設置空閑子進程的最小數量。所謂空閑子進程是指沒有正在處理請求的子進程。如果當前空閑子進程數少于
MinSpareServers ,那么Apache將以最大每秒一個的速度產生新的子進程。只有在非常繁忙機器上才需要調整這個參數。將此參數設的太大通常
是一個壞主意。
???????? MaxSpareServers:設置空閑子進程的最大數量。如果當前有超過MaxSpareServers數量的空閑子進程,那么父進程將殺死多余的子進
程。只有在非常繁忙機器上才需要調整這個參數。將此參數設的太大通常是一個壞主意。如果你將該指令的值設置為比MinSpareServers
小,Apache將會自動將其修改成"MinSpareServers+1"。
???????? ServerLimit:服務器允許配置的進程數上限。只有在你需要將MaxClients設置成高于默認值256的時候才需要使用。要將此指令的值
保持和MaxClients一樣。修改此指令的值必須完全停止服務后再啟動才能生效,以restart方式重啟動將不會生效。
MaxClients:用于伺服客戶端請求的最大請求數量(最大子進程數),任何超過MaxClients限制的請求都將進入等候隊列。默認值是256,
如果要提高這個值必須同時提高ServerLimit的值。筆者建議將初始值設為(以Mb為單位的最大物理內存/2),然后根據負載情況進行動態調整。
比如一臺4G內存的機器,那么初始值就是4000/2=2000。
???????? MaxRequestsPerChild:設置每個子進程在其生存期內允許伺服的最大請求數量。到達MaxRequestsPerChild的限制后,子進程將會結
束。如果MaxRequestsPerChild為"0",子進程將永遠不會結束。將MaxRequestsPerChild設置成非零值有兩個好處:可以防止(偶然的)內存泄漏
無限進行而耗盡內存;
給進程一個有限壽命,從而有助于當服務器負載減輕的時候減少活動進程的數量。
如果設置為非零值,筆者建議設為10000-30000之間的一個值。
????????? 公式:
MaxClients<=ServerLimit
如果使用worker多路處理模塊,按下面的提示修改:
###=============httpd-mpm.conf worker begin===================
##設置worker多路處理模塊
<IfModule mpm_worker_module>
??? StartServers????????? 5
??? ServerLimit????????? 20
??? ThreadLimit???????? 200
??? MaxClients???????? 4000
MinSpareThreads????? 25
??? MaxSpareThreads?? 250
??? ThreadsPerChild???? 200
??? MaxRequestsPerChild?? 0
</IfModule>
###=============httpd-mpm.conf worker end===================
???????? 指令說明:
??????? StartServers:設置服務器啟動時建立的子進程數量。因為子進程數量動態的取決于負載的輕重,所有一般沒有必要調整這個參數。
??????? ServerLimit:服務器允許配置的進程數上限。只有在你需要將MaxClients和ThreadsPerChild設置成需要超過默認值16個子進程的時
候才需要使用這個指令。不要將該指令的值設置的比MaxClients 和ThreadsPerChild需要的子進程數量高。修改此指令的值必須完全停止服務
后再啟動才能生效,以restart方式重啟動將不會生效。
??????? ThreadLimit: 設置每個子進程可配置的線程數ThreadsPerChild上限,該指令的值應當和ThreadsPerChild可能達到的最大值保持一致
。修改此指令的值必須完全停止服務后再啟動才能生效,以restart方式重啟動將不會生效。
??????? MaxClients:用于伺服客戶端請求的最大接入請求數量(最大線程數)。任何超過MaxClients限制的請求都將進入等候隊列。默認值
是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的結果。因此要增加MaxClients的時候,你必須同時增加 ServerLimit的值。筆者建議
將初始值設為(以Mb為單位的最大物理內存/2),然后根據負載情況進行動態調整。比如一臺4G內存的機器,那么初始值就是4000/2=2000。
??????? MinSpareThreads:最小空閑線程數,默認值是"75"。這個MPM將基于整個服務器監視空閑線程數。如果服務器中總的空閑線程數太少,
子進程將產生新的空閑線程。
??????? MaxSpareThreads:設置最大空閑線程數。默認值是"250"。這個MPM將基于整個服務器監視空閑線程數。如果服務器中總的空閑線程數
太多,子進程將殺死多余的空閑線程。MaxSpareThreads的取值范圍是有限制的。Apache將按照如下限制自動修正你設置的值:worker要求其大
于等于 MinSpareThreads加上ThreadsPerChild的和。?
??????? ThreadsPerChild:每個子進程建立的線程數。默認值是25。子進程在啟動時建立這些線程后就不再建立新的線程了。每個子進程所擁
有的所有線程的總數要足夠大,以便可以處理可能的請求高峰。
??????? MaxRequestsPerChild:設置每個子進程在其生存期內允許伺服的最大請求數量。到達MaxRequestsPerChild的限制后,子進程將會結
束。如果MaxRequestsPerChild為"0",子進程將永遠不會結束。將MaxRequestsPerChild設置成非零值有兩個好處:可以防止(偶然的)內存泄漏
無限進行而耗盡內存;
給進程一個有限壽命,從而有助于當服務器負載減輕的時候減少活動進程的數量。
如果設置為非零值,筆者建議設為10000-30000之間的一個值。
???????? 公式:
???????? ThreadLimit >= ThreadsPerChild
???????? MaxClients <= ServerLimit * ThreadsPerChild 必須是ThreadsPerChild的倍數
???????? MaxSpareThreads >= MinSpareThreads+ThreadsPerChild
4.3.4 配置Apache服務器默認設置
???????? 編輯Apache服務器默認設置文件:
???????? vi /usr/local/apache-2.2.6/conf/extra/httpd-default.conf?
???????? 按下面的提示修改:
###=============httpd-default.conf begin===================
##Apache默認設置文件
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
###=============httpd-default.conf end====================
???????? 指令說明:
??? Timeout:設置服務器在斷定請求失敗前等待的秒數。默認值300。
???????? KeepAlive:設置是否啟用HTTP持久鏈接,On 代表打開,Off 代表關閉。如果用于同一頁面包含大量靜態文件的應用,設置為On,以
提高性能;如果用于主要為動態頁面的應用,設置為Off,以節約內存資源;如果服務器前跑有squid或者其它七層設備,設置為On。
??????? MaxKeepAliveRequests:限制當啟用KeepAlive時,每個連接允許的請求數量。如果將此值設為"0",將不限制請求的數目。筆者建議
將此值設為100-500之間的一個值,以確保最優的服務器性能。
??? KeepAliveTimeout:設置持久鏈接中服務器在兩次請求之間等待的秒數。對于高負荷服務器來說,KeepAliveTimeout值較大會導致一些
性能方面的問題:超時值越大,與空閑客戶端保持連接的進程就越多。
???????? UseCanonicalName:配置服務器如何確定它自己的域名,可選值為On | Off | DNS。DNS用于為大量基于IP的虛擬主機支持那些古董
級的不提供"Host:"頭的瀏覽器使用。筆者建議設置為Off。
??????? AccessFileName:設置分布式配置文件的名字,默認為.htaccess。如果為某個目錄啟用了分布式配置文件功能,那么在向客戶端返回
其中的文檔時,服務器將在這個文檔所在的各級目錄中查找此配置文件,因此會帶來性能問題,筆者建議關閉分布式配置文件功能。
??????? ServerTokens:控制服務器回應給客戶端的"Server:"應答頭是否包含關于服務器操作系統類型和編譯進的模塊描述信息,同時還控制
著ServerSignature指令的顯示內容??蛇x值為Full | OS | Minor | Minimal | Major | Prod。筆者建議設置為顯示最少信息的Prod。
??????? ServerSignature:配置服務器生成頁面的頁腳,可選值為On | Off | EMail。采用On會簡單的增加一行關于服務器版本和正在伺服的
虛擬主機的ServerName,而EMail設置會額外創建一個指向ServerAdmin的"mailto:"部分。建議使用默認值Off。
??????? HostnameLookups:設置是否啟用對客戶端IP的DNS查找,可選值為On | Off | Double。DNS查詢會造成明顯的時間消耗,建議設置為
Off。
4.3.5 配置mod_deflate壓縮模塊
???????? mod_deflate模塊提供了DEFLATE輸出過濾器,允許服務器在將輸出內容發送到客戶端以前進行壓縮,以節約帶寬。
???????? 編輯mod_deflate壓縮模塊設置文件:
???????? vi /usr/local/apache-2.2.6/conf/extra/httpd-deflate.conf?
???????? 按下面的提示修改:
###=============httpd-deflate.conf begin===================
##mod_deflate壓縮模塊設置文件
<IfModule mod_deflate.c>
??? ##定義deflate默認設置
??? DeflateMemLevel 9
??? DeflateWindowSize 15
??? DeflateBufferSize 8096
??? DeflateCompressionLevel 8
??? ## 調試時去掉下面5行前的注釋符,用以記錄壓縮日志
??? #DeflateFilterNote Input instream
??? #DeflateFilterNote Output outstream
??? #DeflateFilterNote Ratio ratio
??? #LogFormat '"%r" %b %{outstream}n/%{instream}n (%{ratio}n%%) "%{User-agent}i"' deflate
??? #CustomLog logs/deflate_log deflate?
??? ## 插入DEFLATE過濾器,以啟用輸出壓縮
SetOutputFilter DEFLATE
## Netscape 4.x 有一些問題,僅壓縮txt/html類型
??? BrowserMatch ^Mozilla/4 gzip-only-text/html
## Netscape 4.06-4.08不能處理任何壓縮內容,不進行壓縮
??? BrowserMatch ^Mozilla/4.0[678] no-gzip
??? ## MSIE 會偽裝成 Netscape ,但是事實上它沒有問題
??? BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
??? ## 設置圖片、mp3、壓縮格式文件等不需要進行壓縮內容
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
??? SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
??? SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
??? ## 確保代理不會發送錯誤的內容
??? Header append Vary User-Agent env=!dont-vary
</IfModule>
###=============httpd-deflate.conf end=====================
???????? 指令說明:
???????? DeflateMemLevel:指定zlib在壓縮時最多可以使用多少內存,取值范圍在1到9之間。
??????? DeflateWindowSize:定義zlib壓縮窗口(compression window)的大小,取值范圍在1到15之間,通常窗口越大壓縮效果越好。
??????? DeflateBufferSize:定義zlib一次壓縮的片斷的字節數,默認為8096。
??????? DeflateCompressionLevel:設定壓縮程度,越高的壓縮程度就會有越好的壓縮效果,同時也意味著占用越多的CPU資源。取值范圍在
1(最低壓縮率) 到 9(最高壓縮率)之間,如果不設置此指令,默認為zlib的默認值。
??????? DeflateFilterNote:在日志中放置壓縮率標記。
???? 語法為:DeflateFilterNote type notename
???????? notename就表示這個壓縮率標記的名字,你可以為了某種統計目的將這個標記的名字添加到訪問日志中。
???????? type指定notename標記所記錄的數據類型:Input,在標記中存儲過濾器輸入流的字節數;Output,在標記中存儲過濾器輸出流的字
節數;Ratio,在標記中存儲過濾器的壓縮比(輸出/輸入*100),這是type的默認值。
???????? SetOutputFilter:設置用于在服務器應答發送到客戶端之前使用的過濾器。如果多于一個過濾器,必須按照處理內容的順序用分號
(;)分隔。
??????? BrowserMatch:基于User-Agent頭有條件地設置環境變量。
??????? SetEnvIfNoCase:根據大小寫無關的客戶端請求屬性設置環境變量。
???????? Headers:配置HTTP應答頭。這個指令可以替換、合并、刪除HTTP應答頭。應答頭緊跟在內容處理器和輸出過濾器完工之后生成,這
時候才能對頭進行修改。
4.3.6 配置mod_expires模塊
????????? 這個模塊控制服務器應答時的Expires頭內容和Cache-Control頭的max-age指令。有效期(expiration date)可以設置為相對于源文
件的最后修改時刻或者客戶端的訪問時刻。這些HTTP頭向客戶端表明了文檔的有效性和持久性。如果有緩存,文檔就可以從緩存(除已經過期)
而不是從服務器讀取。接著,客戶端考察緩存中的副本,看看是否過期或者失效,以決定是否必須從服務器獲得更新。
???????? 編輯mod_expires設置文件:
???????? vi /usr/local/apache-2.2.6/conf/extra/httpd-expires.conf?
???????? 按下面的提示修改:
###=============httpd-expires.conf begin===================
## mod_expires設置文件
<IfModule mod_expires.c>
??????? ExpiresActive on
??? ExpiresDefault A300?
??????? ExpiresByType text/html A300
??????? ExpiresByType image/gif A2592000
??????? ExpiresByType image/jpeg A2592000
??????? ExpiresByType image/png A2592000
??????? ExpiresByType text/css A2592000
??????? ExpiresByType text/js A2592000
??????? ExpiresByType text/javascript A2592000
??????? ExpiresByType application/x-javascript A2592000
</IfModule>
###=============httpd-expires.conf end=====================
???????? 指令說明:
??????? ExpiresActive:對其作用范圍內的文檔啟用或禁用產生Expires和Cache-Control頭的功能。若設置為 Off 則不會為其作用范圍內的
任何文檔生成Expires和Cache-Control頭(除非被更低一層的規則改寫,比如.htaccess文件)。若設置為 On 則會按照ExpiresByType和
ExpiresDefault指令定義的標準為其作用范圍內的文檔生成Expires和Cache-Control頭。注意,這個指令并不保證Expires或Cache-Control頭
一定會產生。如果定義的標準不規范,將不會產生這兩個頭,其效果是好像從未設置過這個指令一樣。
??????? ExpiresByType:為指定MIME類型的文檔配置Expires頭的值。
???????? 語法為:ExpiresByType MIME-type <code>seconds
???????? seconds參數設置了添加到基準時間以構造有效期限的秒數。Cache-Control: max-age的計算方法是從有效期減去當前請求時間并轉
化為秒數。
???????? 基準時刻可以是源文件的最后修改時刻或者客戶端對源文件的訪問時刻,至于使用那一個則由<code>指定。"M"表示源文件的最后修
改時刻,"A"表示客戶端對源文件的訪問時刻。需要注意的是<code>和seconds之間沒有空格。如果使用"M",所有當前緩存中的文檔副本都將在
同一時刻過期,這個可能對定期更新的URL(比如位于同一位置的每周通告)很有好處。如果使用"A",則每個客戶端所得到的有效期是不一樣的
,這個可能對那些幾乎不更新的圖片文件很有好處,特別是對于一組都引用了相同圖片的相關文檔。
???????? ExpiresDefault:設置其作用范圍內的所有文檔的默認有效期的計算方法,它可以被ExpiresByType指令基于MIME類型被改寫。
????????? 語法為:ExpiresDefault <code>seconds
????????? <code>seconds同ExpiresByType一致。
總結
以上是生活随笔為你收集整理的apache2.2配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows下配置apache虚拟主机
- 下一篇: apache 提示You don't h