亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
首頁(yè) 版本說明 從1.3升級(jí)到2.0 編譯時(shí)配置的改變 運(yùn)行時(shí)配置的改變 雜項(xiàng)變化 第三方模塊 從 2.0 升級(jí)到 2.2 編譯時(shí)配置的改變 運(yùn)行時(shí)配置的改變 雜項(xiàng)變化 第三方模塊 Apache 2.1/2.2 版本的新特性 核心增強(qiáng) 模塊增強(qiáng) 程序增強(qiáng) 針對(duì)模塊開發(fā)者的變化 Apache 2.0 版本的新特性 核心的增強(qiáng) 模塊的增強(qiáng) Apache許可證 參考手冊(cè) 編譯與安裝 針對(duì)心急者的概述 要求 下載 解壓 配置源代碼樹 編譯 安裝 配置 測(cè)試 升級(jí) 啟動(dòng) Apache是怎樣啟動(dòng)的 啟動(dòng)時(shí)發(fā)生錯(cuò)誤 隨系統(tǒng)啟動(dòng)時(shí)啟動(dòng) 額外信息 停止與重新啟動(dòng) 簡(jiǎn)介 立即停止 優(yōu)雅重啟 立即重啟 優(yōu)雅停止 附錄:信號(hào)和競(jìng)爭(zhēng)條件 運(yùn)行時(shí)配置指令 主配置文件 配置文件的語(yǔ)法 模塊 指令的作用域 .htaccess文件 配置段 配置段(容器)的類型 文件系統(tǒng)和網(wǎng)絡(luò)空間 虛擬主機(jī) 代理 允許使用哪些指令? 配置段的合并 內(nèi)容緩沖 簡(jiǎn)介 緩沖概述 安全方面的考慮 文件句柄緩沖 內(nèi)存緩沖 磁盤緩沖 服務(wù)器全局配置 服務(wù)器標(biāo)識(shí) 文件定位 限制資源的使用 日志文件 安全警告 錯(cuò)誤日志 訪問日志 日志滾動(dòng) 管道日志 虛擬主機(jī) 其他日志文件 從URL到文件系統(tǒng)的映射 相關(guān)模塊和指令 DocumentRoot DocumentRoot以外的文件 用戶目錄 URL重定向 反向代理 重寫引擎 File Not Found 安全方面的提示 保持不斷更新和升級(jí) ServerRoot目錄的權(quán)限 服務(wù)器端包含 關(guān)于CGI 未指定為腳本的CGI 指定為腳本的CGI 其他動(dòng)態(tài)內(nèi)容的來源 系統(tǒng)設(shè)置的保護(hù) 默認(rèn)配置下服務(wù)器文件的保護(hù) 觀察日志文件 動(dòng)態(tài)共享對(duì)象(DSO) 實(shí)現(xiàn) 用法概要 背景知識(shí) 優(yōu)點(diǎn)和缺點(diǎn) 內(nèi)容協(xié)商 關(guān)于內(nèi)容協(xié)商 Apache中的內(nèi)容協(xié)商 協(xié)商的方法 打亂品質(zhì)值 透明內(nèi)容協(xié)商的擴(kuò)展 超鏈和名稱轉(zhuǎn)換說明 緩沖說明 更多信息 自定義錯(cuò)誤響應(yīng) 行為 配置 自定義錯(cuò)誤響應(yīng)與重定向 地址和端口綁定 概述 針對(duì)IPv6的特殊考慮 怎樣與虛擬主機(jī)協(xié)同工作 多路處理模塊(MPM) 簡(jiǎn)介 選擇一個(gè)MPM 默認(rèn)的MPM 環(huán)境變量 設(shè)置環(huán)境變量 使用環(huán)境變量 用于特殊目的的環(huán)境變量 示例 處理器的使用 什么是處理器? 例子 程序員注意事項(xiàng) 過濾器 Apache2中的過濾器 智能過慮 使用過濾器 CGI腳本的Suexec執(zhí)行 開始之前 suEXEC的安全模型 配置和安裝suEXEC 啟用和禁用suEXEC 使用suEXEC 調(diào)試suEXEC 謹(jǐn)防Jabberwock:警告和舉例 性能調(diào)整 硬件和操作系統(tǒng) 運(yùn)行時(shí)的配置 編譯時(shí)的配置 附錄:蹤跡的詳細(xì)分析 URL重寫指南 mod_rewrite簡(jiǎn)介 實(shí)踐方案 URL的規(guī)劃 內(nèi)容的處理 對(duì)訪問的限制 其他 虛擬主機(jī)文檔 總述 虛擬主機(jī)支持 配置指令 基于主機(jī)名的虛擬主機(jī) 基于域名的虛擬主機(jī)和基于IP的虛擬主機(jī)比較 使用基于域名的虛擬主機(jī) 與舊版瀏覽器的兼容性 基于IP地址的虛擬主機(jī) 系統(tǒng)需求 如何配置Apache 設(shè)置多個(gè)守護(hù)進(jìn)程 配置擁有多個(gè)虛擬主機(jī)的單一守護(hù)進(jìn)程 動(dòng)態(tài)配置大量虛擬主機(jī) 動(dòng)機(jī) 概述 簡(jiǎn)單的動(dòng)態(tài)虛擬主機(jī) 一個(gè)實(shí)際的個(gè)人主頁(yè)系統(tǒng) 在同一個(gè)服務(wù)器上架設(shè)多個(gè)主機(jī)的虛擬系統(tǒng) 更為有效的基于IP地址的虛擬主機(jī) 使用老版本的Apache 使用mod_rewrite實(shí)現(xiàn)簡(jiǎn)單的動(dòng)態(tài)虛擬主機(jī) 使用mod_rewrite的個(gè)人主頁(yè)系統(tǒng) 使用獨(dú)立的虛擬主機(jī)配置文件 虛擬主機(jī)的普通配置示例 在一個(gè)IP地址上運(yùn)行多個(gè)基于域名的web站點(diǎn) 在多于一個(gè)IP的情況下使用基于域名的虛擬主機(jī) 在不同的IP的地址(比如一個(gè)內(nèi)部和一個(gè)外部地址)上提供相同的內(nèi)容 在不同的端口上運(yùn)行不同的站點(diǎn) 建立基于IP的虛擬主機(jī) 混用基于端口和基于IP的虛擬主機(jī) 混用基于域名和基于IP的虛擬主機(jī) 將虛擬主機(jī)和代理模塊一起使用 使用默認(rèn)虛擬主機(jī) 將一個(gè)基于域名的虛擬主機(jī)移植為一個(gè)基于IP的虛擬主機(jī) 使用ServerPath指令 深入討論虛擬主機(jī)的匹配 解析配置文件 虛擬主機(jī)匹配 小技巧 文件描述符限制 關(guān)于DNS和Apache 一個(gè)簡(jiǎn)單示例 拒絕服務(wù) "主服務(wù)器"地址 避免這些問題的小技巧 附錄:進(jìn)一步的提示 常見問題 概述 SSL/TLS 加密 概述 文檔 mod_ssl 緒論 密碼技術(shù) 證書 安全套接字層(SSL) 參考 兼容性 配置指令 環(huán)境變量 自定義日志功能 如何... 加密方案和強(qiáng)制性高等級(jí)安全 客戶認(rèn)證和訪問控制 常見問題解答 About The Module Installation Configuration Certificates The SSL Protocol mod_ssl Support 如何.../指南 概述 認(rèn)證 相關(guān)模塊和指令 簡(jiǎn)介 先決條件 啟用認(rèn)證 允許多人訪問 可能存在的問題 其他認(rèn)證方法 更多信息 CGI動(dòng)態(tài)頁(yè)面 簡(jiǎn)介 配置Apache以允許CGI 編寫CGI程序 程序還是不能運(yùn)行! 幕后是怎樣操作的? CGI模塊/庫(kù) 更多信息 服務(wù)器端包含 簡(jiǎn)介 什么是SSI? 配置服務(wù)器以允許SSI 基本SSI指令 附加的例子 我還能設(shè)置其它什么? 執(zhí)行命令 高級(jí)SSI技術(shù) 總結(jié) .htaccess文件 .htaccess文件 工作原理和使用方法 (不)使用.htaccess文件的場(chǎng)合 指令的生效 認(rèn)證舉例 服務(wù)器端包含(SSI)舉例 CGI舉例 疑難解答 用戶網(wǎng)站目錄 用戶網(wǎng)站目錄 用UserDir設(shè)置文件路徑 限定哪些用戶可以使用此功能 啟用對(duì)每個(gè)用戶都有效的cgi目錄 允許用戶改變配置 對(duì)特定平臺(tái)的說明 概述 Microsoft Windows 其他平臺(tái) 在Microsoft Windows中使用Apache 對(duì)操作系統(tǒng)的要求 下載 Apache for Windows 安裝 Apache for Windows 配置 Apache for Windows 以服務(wù)方式運(yùn)行 Apache for Windows 作為控制臺(tái)程序運(yùn)行Apache 測(cè)試安裝 編譯Windows下的Apache 系統(tǒng)要求 命令行編譯 Developer Studio集成開發(fā)環(huán)境的工作區(qū)編譯 項(xiàng)目組件 在Novell NetWare平臺(tái)上使用Apache Requirements Downloading Apache for NetWare Installing Apache for NetWare Running Apache for NetWare Configuring Apache for NetWare Compiling Apache for NetWare 在HP-UX中運(yùn)行Apache The Apache EBCDIC Port Overview of the Apache EBCDIC Port Design Goals Technical Solution Porting Notes Document Storage Notes Apache Modules' Status Third Party Modules' Status 服務(wù)器與支持程序 概述 httpd 語(yǔ)法 選項(xiàng) ab 語(yǔ)法 選項(xiàng) Bugs apachectl 語(yǔ)法 選項(xiàng) apxs 語(yǔ)法 選項(xiàng) 舉例 configure 語(yǔ)法 選項(xiàng) 環(huán)境變量 dbmmanage 語(yǔ)法 選項(xiàng) Bugs htcacheclean 語(yǔ)法 選項(xiàng) 返回值 htdbm 語(yǔ)法 選項(xiàng) Bugs 返回值 舉例 安全方面的考慮 限制 htdigest 語(yǔ)法 選項(xiàng) htpasswd 語(yǔ)法 選項(xiàng) 返回值 舉例 安全方面的考慮 限制 logresolve 語(yǔ)法 選項(xiàng) rotatelogs 語(yǔ)法 選項(xiàng) Portability suexec 語(yǔ)法 選項(xiàng) 其他程序 log_server_status split-logfile 雜項(xiàng)文檔 概述 相關(guān)標(biāo)準(zhǔn) HTTP推薦標(biāo)準(zhǔn) HTML推薦標(biāo)準(zhǔn) 認(rèn)證 語(yǔ)言/國(guó)家代碼 Apache 模塊 描述模塊的術(shù)語(yǔ) 說明 狀態(tài) 源代碼文件 模塊標(biāo)識(shí)符 兼容性 描述指令的術(shù)語(yǔ) 說明 語(yǔ)法 默認(rèn)值(Default) 作用域(Context) 覆蓋項(xiàng)(Override) 狀態(tài) 模塊(Module) 兼容性(Compatibility) Apache核心(Core)特性 AcceptFilter AcceptPathInfo AccessFileName AddDefaultCharset AddOutputFilterByType AllowEncodedSlashes AllowOverride AuthName AuthType CGIMapExtension ContentDigest DefaultType <Directory> <DirectoryMatch> DocumentRoot EnableMMAP EnableSendfile ErrorDocument ErrorLog FileETag <Files> <FilesMatch> ForceType HostnameLookups <IfDefine> <IfModule> Include KeepAlive KeepAliveTimeout <Limit> <LimitExcept> LimitInternalRecursion LimitRequestBody LimitRequestFields LimitRequestFieldSize LimitRequestLine LimitXMLRequestBody <Location> <LocationMatch> LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens SetHandler SetInputFilter SetOutputFilter TimeOut TraceEnable UseCanonicalName UseCanonicalPhysicalPort <VirtualHost> Apache MPM 公共指令 AcceptMutex CoreDumpDirectory EnableExceptionHook GracefulShutdownTimeout Group Listen ListenBackLog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ServerLimit StartServers StartThreads ThreadLimit ThreadsPerChild ThreadStackSize User Apache MPM beos MaxRequestsPerThread CoreDumpDirectory Group Listen ListenBacklog MaxClients MaxMemFree MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize StartThreads User Apache MPM event AcceptMutex CoreDumpDirectory EnableExceptionHook Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ScoreBoardFile SendBufferSize ServerLimit StartServers ThreadLimit ThreadsPerChild ThreadStackSize User Apache MPM netware MaxThreads Listen ListenBacklog MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads ReceiveBufferSize SendBufferSize StartThreads ThreadStackSize Apache MPM os2 Group Listen ListenBacklog MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize SendBufferSize StartServers User Apache MPM prefork 工作方式 MaxSpareServers MinSpareServers AcceptMutex CoreDumpDirectory EnableExceptionHook Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ServerLimit StartServers User Apache MPM winnt Win32DisableAcceptEx CoreDumpDirectory Listen ListenBacklog MaxMemFree MaxRequestsPerChild PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ThreadLimit ThreadsPerChild ThreadStackSize Apache MPM worker 工作方式 AcceptMutex CoreDumpDirectory EnableExceptionHook Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ServerLimit StartServers ThreadLimit ThreadsPerChild ThreadStackSize User Apache Module mod_actions Action指令 Script指令 Apache Module mod_alias 處理順序 Alias AliasMatch Redirect RedirectMatch RedirectPermanent RedirectTemp ScriptAlias ScriptAliasMatch Apache Module mod_asis 用法 Apache Module mod_auth_basic AuthBasicAuthoritative AuthBasicProvider Apache Module mod_auth_digest 使用摘要認(rèn)證 配合 MS Internet Explorer 6 工作 AuthDigestAlgorithm AuthDigestDomain AuthDigestNcCheck AuthDigestNonceFormat AuthDigestNonceLifetime AuthDigestProvider AuthDigestQop AuthDigestShmemSize Apache Module mod_authn_alias 示例 <AuthnProviderAlias> Apache Module mod_authn_anon 示例 Anonymous Anonymous_LogEmail Anonymous_MustGiveEmail Anonymous_NoUserID Anonymous_VerifyEmail Apache Module mod_authn_dbd 配置示例 AuthDBDUserPWQuery AuthDBDUserRealmQuery Apache Module mod_authn_dbm AuthDBMType AuthDBMUserFile Apache Module mod_authn_default AuthDefaultAuthoritative Apache Module mod_authn_file AuthUserFile Apache Module mod_authnz_ldap Contents Operation The require Directives 舉例 Using TLS Using SSL Using Microsoft FrontPage with mod_authnz_ldap AuthLDAPBindDN AuthLDAPBindPassword AuthLDAPCharsetConfig AuthLDAPCompareDNOnServer AuthLDAPDereferenceAliases AuthLDAPGroupAttribute AuthLDAPGroupAttributeIsDN AuthLDAPRemoteUserIsDN AuthLDAPUrl AuthzLDAPAuthoritative Apache Module mod_authz_dbm AuthDBMGroupFile AuthzDBMAuthoritative AuthzDBMType Apache Module mod_authz_default AuthzDefaultAuthoritative Apache Module mod_authz_groupfile AuthGroupFile AuthzGroupFileAuthoritative Apache Module mod_authz_host Allow Deny Order Apache Module mod_authz_owner 配置示例 AuthzOwnerAuthoritative Apache Module mod_authz_user AuthzUserAuthoritative Apache Module mod_autoindex Autoindex Request Query Arguments AddAlt AddAltByEncoding AddAltByType AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon HeaderName IndexIgnore IndexOptions IndexOrderDefault IndexStyleSheet ReadmeName Apache Module mod_cache Related Modules and Directives 配置示例 CacheDefaultExpire CacheDisable CacheEnable CacheIgnoreCacheControl CacheIgnoreHeaders CacheIgnoreNoLastMod CacheLastModifiedFactor CacheMaxExpire CacheStoreNoStore CacheStorePrivate Apache Module mod_cern_meta MetaDir MetaFiles MetaSuffix Apache Module mod_cgi CGI 環(huán)境變量 CGI 腳本的調(diào)試 ScriptLog ScriptLogBuffer ScriptLogLength Apache Module mod_cgid ScriptSock ScriptLog ScriptLogBuffer ScriptLogLength Apache Module mod_charset_lite Common Problems CharsetDefault CharsetOptions CharsetSourceEnc Apache Module mod_dav Enabling WebDAV Security Issues Complex Configurations Dav DavDepthInfinity DavMinTimeout Apache Module mod_dav_fs DavLockDB Apache Module mod_dav_lock DavGenericLockDB Apache Module mod_dbd Connection Pooling Apache DBD API SQL Prepared Statements DBDExptime DBDKeep DBDMax DBDMin DBDParams DBDPersist DBDPrepareSQL DBDriver Apache Module mod_deflate 配置舉例 啟用壓縮 代理服務(wù)器 DeflateBufferSize DeflateCompressionLevel DeflateFilterNote DeflateMemLevel DeflateWindowSize Apache Module mod_dir DirectoryIndex DirectorySlash Apache Module mod_disk_cache CacheDirLength CacheDirLevels CacheMaxFileSize CacheMinFileSize CacheRoot Apache Module mod_dumpio 啟用dumpio支持 DumpIOInput DumpIOOutput Apache Module mod_echo ProtocolEcho Apache Module mod_env PassEnv SetEnv UnsetEnv Apache Module mod_example Compiling the example module Using the mod_example Module Example Apache Module mod_expires 交替間隔語(yǔ)法 ExpiresActive ExpiresByType ExpiresDefault Apache Module mod_ext_filter 舉例 ExtFilterDefine ExtFilterOptions Apache Module mod_file_cache Using mod_file_cache CacheFile MMapFile Apache Module mod_filter Smart Filtering Filter Declarations Configuring the Chain Examples Protocol Handling FilterChain FilterDeclare FilterProtocol FilterProvider FilterTrace Apache Module mod_headers 處理順序 前處理和后處理 舉例 Header RequestHeader Apache Module mod_ident IdentityCheck IdentityCheckTimeout Apache Module mod_imagemap New Features Imagemap File Example Mapfile Referencing your mapfile ImapBase ImapDefault ImapMenu Apache Module mod_include Enabling Server-Side Includes PATH_INFO with Server Side Includes Basic Elements Include Variables Variable Substitution Flow Control Elements SSIEndTag SSIErrorMsg SSIStartTag SSITimeFormat SSIUndefinedEcho XBitHack Apache Module mod_info 安全問題 選擇哪些信息可以被顯示 已知的局限 AddModuleInfo Apache Module mod_isapi 用法 附加注釋 程序員注記 ISAPIAppendLogToErrors ISAPIAppendLogToQuery ISAPICacheFile ISAPIFakeAsync ISAPILogNotSupported ISAPIReadAheadBuffer Apache Module mod_ldap 示例配置 LDAP 連接池 LDAP 緩沖 使用SSL/TLS SSL/TLS 證書 LDAPCacheEntries LDAPCacheTTL LDAPConnectionTimeout LDAPOpCacheEntries LDAPOpCacheTTL LDAPSharedCacheFile LDAPSharedCacheSize LDAPTrustedClientCert LDAPTrustedGlobalCert LDAPTrustedMode LDAPVerifyServerCert Apache Module mod_log_config 定制日志文件格式 安全考慮 BufferedLogs CookieLog CustomLog LogFormat TransferLog Apache Module mod_log_forensic 定制日志文件格式 安全考慮 ForensicLog Apache Module mod_logio 定制日志文件格式 Apache Module mod_mem_cache MCacheMaxObjectCount MCacheMaxObjectSize MCacheMaxStreamingBuffer MCacheMinObjectSize MCacheRemovalAlgorithm MCacheSize Apache Module mod_mime 帶多擴(kuò)展名的文件 內(nèi)容編碼 字符集和語(yǔ)言 AddCharset AddEncoding AddHandler AddInputFilter AddLanguage AddOutputFilter AddType DefaultLanguage ModMimeUsePathInfo MultiviewsMatch RemoveCharset RemoveEncoding RemoveHandler RemoveInputFilter RemoveLanguage RemoveOutputFilter RemoveType TypesConfig Apache Module mod_mime_magic "Magic文件"的格式 性能問題 注意 MimeMagicFile Apache Module mod_negotiation 類型表 MultiViews CacheNegotiatedDocs ForceLanguagePriority LanguagePriority Apache Module mod_nw_ssl NWSSLTrustedCerts NWSSLUpgradeable SecureListen Apache Module mod_proxy 正向和反向代理 簡(jiǎn)單示例 控制對(duì)代理服務(wù)器的訪問 緩慢啟動(dòng) 局域網(wǎng)代理 協(xié)議調(diào)整 請(qǐng)求體 AllowCONNECT NoProxy <Proxy> ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize <ProxyMatch> ProxyMaxForwards ProxyPass ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia Apache Module mod_proxy_ajp Overview of the protocol Basic Packet Structure Request Packet Structure Response Packet Structure Apache Module mod_proxy_balancer Load balancer scheduler algorithm Request Counting Algorithm Weighted Traffic Counting Algorithm Enabling Balancer Manager Support Apache Module mod_proxy_connect Apache Module mod_proxy_ftp 為什么xxx類型的文件不能從FTP下載? 如何強(qiáng)制文件xxx使用FTP的ASCII形式下載? 我如何使用FTP上傳? 我如何能訪問我自己home目錄以外的FTP文件? 我如何才能在瀏覽器的URL框中隱藏FTP的明文密碼? Apache Module mod_proxy_http Apache Module mod_rewrite 特殊字符的引用 環(huán)境變量 實(shí)用方案 RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule Apache Module mod_setenvif BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase Apache Module mod_so 為Windows創(chuàng)建可加載模塊 LoadFile LoadModule Apache Module mod_speling CheckSpelling Apache Module mod_ssl 環(huán)境變量 Custom Log Formats SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCryptoDevice SSLEngine SSLHonorCipherOrder SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLUserName SSLVerifyClient SSLVerifyDepth Apache Module mod_status Enabling Status Support 自動(dòng)更新 Machine Readable Status File ExtendedStatus Apache Module mod_suexec SuexecUserGroup Apache Module mod_unique_id Theory Apache Module mod_userdir UserDir Apache Module mod_usertrack Logging 2-digit or 4-digit dates for cookies? CookieDomain CookieExpires CookieName CookieStyle CookieTracking Apache Module mod_version <IfVersion> Apache Module mod_vhost_alias 目錄名稱的轉(zhuǎn)換 示例 VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP 開發(fā)者文檔 Overview Topics External Resources Apache API notes Basic concepts How handlers work Resource allocation and resource pools Configuration Debugging Memory Allocation in APR Available debugging options Allowable Combinations Activating Debugging Options Documenting Apache 2.0 Apache 2.0 Hook Functions Creating a hook function Hooking the hook Converting Modules from Apache 1.3 to Apache 2.0 The easier changes ... The messier changes... Request Processing in Apache 2.0 The Request Processing Cycle The Request Parsing Phase The Security Phase The Preparation Phase The Handler Phase How Filters Work in Apache 2.0 Filter Types How are filters inserted? Asis Explanations 詞匯和索引 詞匯表 模塊索引 指令索引 指令速查 譯者聲明
characters

日志文件

要有效地管理Web服務(wù)器,就有必要反饋服務(wù)器的活動(dòng)、性能以及出現(xiàn)的問題。Apache HTTP服務(wù)器提供了非常全面而靈活的日志記錄功能。本文將闡述如何配置文件以及如何理解日志內(nèi)容。

安全警告

任何人只要對(duì)Apache存放日志文件的目錄具有寫權(quán)限,也就當(dāng)然地可以獲得啟動(dòng)Apache的用戶(通常是root)的權(quán)限,絕對(duì)不要隨意給予任何人存放日志文件目錄的寫權(quán)限。細(xì)節(jié)請(qǐng)參見安全方面的提示。

另外,日志文件可能會(huì)包含未加轉(zhuǎn)換的來自用戶的信息,用戶就有機(jī)會(huì)惡意插入控制符,所以處理原始日志時(shí)應(yīng)該當(dāng)心這個(gè)問題。

錯(cuò)誤日志(Error Log)

錯(cuò)誤日志是最重要的日志文件,其文件名和位置取決于ErrorLog指令。Apache httpd將在這個(gè)文件中存放診斷信息和處理請(qǐng)求中出現(xiàn)的錯(cuò)誤,由于這里經(jīng)常包含了出錯(cuò)細(xì)節(jié)以及如何解決,如果服務(wù)器啟動(dòng)或運(yùn)行中有問題,首先就應(yīng)該查看這個(gè)錯(cuò)誤日志。

錯(cuò)誤日志通常被寫入一個(gè)文件(unix系統(tǒng)上一般是error_log ,Windows和OS/2上一般是error.log)。在unix系統(tǒng)中,錯(cuò)誤日志還可能被重定向到syslog或通過管道操作傳遞給一個(gè)程序。

錯(cuò)誤日志的格式相對(duì)靈活,并可以附加文字描述。某些信息會(huì)出現(xiàn)在絕大多數(shù)記錄中,一個(gè)典型的例子是:

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

其中,第一項(xiàng)是錯(cuò)誤發(fā)生的日期和時(shí)間;第二項(xiàng)是錯(cuò)誤的嚴(yán)重性,LogLevel指令使只有高于指定嚴(yán)重性級(jí)別的錯(cuò)誤才會(huì)被記錄;第三項(xiàng)是導(dǎo)致錯(cuò)誤的IP地址;此后是信息本身,在此例中,服務(wù)器拒絕了這個(gè)客戶的訪問。服務(wù)器在記錄被訪問文件時(shí),用的是文件系統(tǒng)路徑,而不是Web路徑。

錯(cuò)誤日志中會(huì)包含類似上述例子的多種類型的信息。此外,CGI腳本中任何輸出到stderr的信息會(huì)作為調(diào)試信息原封不動(dòng)地記錄到錯(cuò)誤日志中。

用戶可以增加或刪除錯(cuò)誤日志的項(xiàng)。但是對(duì)某些特殊請(qǐng)求,在訪問日志(access log)中也會(huì)有相應(yīng)的記錄,比如上述例子在訪問日志中也會(huì)有相應(yīng)的記錄,其狀態(tài)碼是403,因?yàn)樵L問日志也可以定制,所以可以從訪問日志中得到錯(cuò)誤事件的更多信息。

在測(cè)試中,對(duì)任何問題持續(xù)監(jiān)視錯(cuò)誤日志是非常有用的。在unix系統(tǒng)中,可以這樣做:

tail -f error_log

訪問日志(Access Log)

訪問日志中會(huì)記錄服務(wù)器所處理的所有請(qǐng)求,其文件名和位置取決于CustomLog指令,LogFormat指令可以簡(jiǎn)化日志的內(nèi)容。這里闡述如何配置服務(wù)器的訪問日志。

實(shí)施日志管理,首先當(dāng)然必須產(chǎn)生訪問日志,然后才能分析日志從而得到有用的統(tǒng)計(jì)信息。日志分析不是Web服務(wù)器的職責(zé),已超出本文的范疇,更多資料和有關(guān)分析工具的信息,可以查看Open Directory或Yahoo 。

不同版本的Apache httpd使用了不同的模塊和指令來控制對(duì)訪問的記錄,包括mod_log_referer, mod_log_agent和TransferLog指令?,F(xiàn)在,CustomLog指令包含了舊版本中相關(guān)指令的所有功能。

訪問日志的格式是高度靈活的,使用很象C風(fēng)格的printf()函數(shù)的格式字符串。下面有幾個(gè)例子,完整的說明可以查看用于mod_log_config模塊的格式字符串。

通用日志格式(Common Log Format)

這是一個(gè)典型的記錄格式:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

它定義了一種特定的記錄格式字符串,并給它起了個(gè)別名common ,其中的"%"指示服務(wù)器用某種信息替換,其他字符則不作替換。引號(hào)(")必須加反斜杠轉(zhuǎn)義,以避免被解釋為字符串的結(jié)束。格式字符串還可以包含特殊的控制符,如換行符"\n" 、制表符"\t"。

CustomLog指令建立一個(gè)使用指定別名的新日志文件,除非其文件名是以斜杠開頭的絕對(duì)路徑,否則其路徑就是相對(duì)于ServerRoot的相對(duì)路徑。

上述配置是一種被稱為通用日志格式(CLF)的記錄格式,它被許多不同的Web服務(wù)器所采用,并被許多日志分析程序所識(shí)別,它產(chǎn)生的記錄形如:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

記錄的各部分說明如下:

127.0.0.1 (%h)
這是發(fā)送請(qǐng)求到服務(wù)器的客戶的IP地址。如果HostnameLookups設(shè)為 On ,則服務(wù)器會(huì)嘗試解析這個(gè)IP地址的主機(jī)名并替換此處的IP地址,但并不推薦這樣做,因?yàn)樗鼤?huì)顯著拖慢服務(wù)器,最好是用一個(gè)日志后續(xù)處理器來判斷主機(jī)名,比如logresolve 。如果客戶和服務(wù)器之間存在代理,那么記錄中的這個(gè)IP地址就是那個(gè)代理的IP地址,而不是客戶機(jī)的真實(shí)IP地址。
- (%l)
這是由客戶端identd進(jìn)程判斷的RFC1413身份(identity),輸出中的符號(hào)"-"表示此處的信息無效。除非在嚴(yán)格控制的內(nèi)部網(wǎng)絡(luò)中,此信息通常很不可靠,不應(yīng)該被使用。只有在將IdentityCheck指令設(shè)為 On 時(shí),Apache才會(huì)試圖得到這項(xiàng)信息。
frank (%u)
這是HTTP認(rèn)證系統(tǒng)得到的訪問該網(wǎng)頁(yè)的客戶標(biāo)識(shí)(userid),環(huán)境變量REMOTE_USER會(huì)被設(shè)為該值并提供給CGI腳本。如果狀態(tài)碼是401,表示客戶未通過認(rèn)證,則此值沒有意義。如果網(wǎng)頁(yè)沒有設(shè)置密碼保護(hù),則此項(xiàng)將是"-"。
[10/Oct/2000:13:55:36 -0700] (%t)
這是服務(wù)器完成請(qǐng)求處理時(shí)的時(shí)間,其格式是:

[日/月/年:時(shí):分:秒 時(shí)區(qū)]
日 = 2數(shù)字
月 = 3字母
年 = 4數(shù)字
時(shí) = 2數(shù)字
分 = 2數(shù)字
秒 = 2數(shù)字
時(shí)區(qū) = (+|-)4數(shù)字

可以在格式字符串中使用 %{format}t 來改變時(shí)間的輸出形式,其中的format與C標(biāo)準(zhǔn)庫(kù)中的strftime()用法相同。
"GET /apache_pb.gif HTTP/1.0" (\"%r\")
引號(hào)中是客戶端發(fā)出的包含許多有用信息的請(qǐng)求行??梢钥闯觯摽蛻舻膭?dòng)作是GET ,請(qǐng)求的資源是/apache_pb.gif ,使用的協(xié)議是HTTP/1.0 。另外,還可以記錄其他信息,如:格式字符串"%m %U%q %H"會(huì)記錄動(dòng)作、路徑、查詢字符串、協(xié)議,其輸出和"%r"一樣。
200 (%>s)
這是服務(wù)器返回給客戶端的狀態(tài)碼。這個(gè)信息非常有價(jià)值,因?yàn)樗甘玖苏?qǐng)求的結(jié)果,或者是被成功響應(yīng)了(以2開頭),或者被重定向了(以3開頭),或者出錯(cuò)了(以4開頭),或者產(chǎn)生了服務(wù)器端錯(cuò)誤(以5開頭)。完整的狀態(tài)碼列表參見HTTP規(guī)范(RFC2616第10章)。
2326 (%b)
最后這項(xiàng)是返回給客戶端的不包括響應(yīng)頭的字節(jié)數(shù)。如果沒有信息返回,則此項(xiàng)應(yīng)該是"-",如果希望記錄為"0"的形式,就應(yīng)該用%B 。

組合日志格式(Combined Log Format)

另一種常用的記錄格式是組合日志格式,形式如下:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined

這種格式與通用日志格式類似,但是多了兩個(gè) %{header}i 項(xiàng),其中的header可以是任何請(qǐng)求頭。這種格式的記錄形如:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

其中,多出來的項(xiàng)是:

"http://www.example.com/start.html" (\"%{Referer}i\")
"Referer"請(qǐng)求頭。此項(xiàng)指明了該請(qǐng)求是被從哪個(gè)網(wǎng)頁(yè)提交過來的,這個(gè)網(wǎng)頁(yè)應(yīng)該包含有/apache_pb.gif或者其連接。
"Mozilla/4.08 [en] (Win98; I ;Nav)" (\"%{User-agent}i\")
"User-Agent"請(qǐng)求頭。此項(xiàng)是客戶端提供的瀏覽器識(shí)別信息。

多文件訪問日志

可以簡(jiǎn)單地在配置文件中用多個(gè)CustomLog指令來建立多文件訪問日志。如下例,既記錄基本的CLF信息,又記錄提交網(wǎng)頁(yè)和瀏覽器的信息,最后兩行CustomLog示范了如何模擬ReferLogAgentLog指令的效果。

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
CustomLog logs/referer_log "%{Referer}i -> %U"
CustomLog logs/agent_log "%{User-agent}i"

此例也說明了,記錄格式可以直接由CustomLog指定,而并不一定要用LogFormat起一個(gè)別名。

條件日志

許多時(shí)候,根據(jù)與請(qǐng)求特征相關(guān)的環(huán)境變量來有選擇地記錄某些客戶端請(qǐng)求會(huì)帶來便利。首先,需要使用SetEnvIf指令來設(shè)置特定的環(huán)境變量以標(biāo)識(shí)符合某種特定條件的請(qǐng)求,然后用CustomLog指令的 env= 子句,根據(jù)這些環(huán)境變量來決定記錄或排除特定的請(qǐng)求。例如:

# 不記錄本機(jī)發(fā)出的請(qǐng)求
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
# 不記錄對(duì)robots.txt文件的請(qǐng)求
SetEnvIf Request_URI "^/robots\.txt$" dontlog
# 記錄其他請(qǐng)求
CustomLog logs/access_log common env=!dontlog

再如,將使用英語(yǔ)的請(qǐng)求記錄到一個(gè)日志,而記錄非英語(yǔ)的請(qǐng)求到另一個(gè)日志:

SetEnvIf Accept-Language "en" english
CustomLog logs/english_log common env=english
CustomLog logs/non_english_log common env=!english

雖然上述已經(jīng)展示了條件日志記錄的強(qiáng)大和靈活,但這不是控制日志內(nèi)容的唯一手段,還可以用日志后繼處理程序來剔除你不關(guān)心的內(nèi)容,從而使日志更加有用。

日志滾動(dòng)

即使一個(gè)并不繁忙的服務(wù)器,其日志文件的信息量也會(huì)很大,一般每10000個(gè)請(qǐng)求,訪問日志就會(huì)增加1MB或更多。這就有必要定期滾動(dòng)日志文件。由于Apache會(huì)保持日志文件的打開,并持續(xù)寫入信息,因此服務(wù)器運(yùn)行期間不能執(zhí)行滾動(dòng)操作。移動(dòng)或者刪除日志文件以后,必須重新啟動(dòng)服務(wù)器才能讓它打開新的日志文件。

優(yōu)雅的(graceful)方法重新啟動(dòng),可以使服務(wù)器啟用新的日志文件,而不丟失原來尚未寫入的信息。為此,有必要等待一段時(shí)間,讓服務(wù)器完成正在處理的請(qǐng)求,并將記錄寫入到原來的日志文件。以下是一個(gè)典型的日志滾動(dòng)和為節(jié)省存儲(chǔ)空間而壓縮舊日志的例子:

mv access_log access_log.old
mv error_log error_log.old
apachectl graceful
sleep 600
gzip access_log.old error_log.old

另一種執(zhí)行滾動(dòng)的方法是使用下一節(jié)闡述的管道日志。

管道日志

Apache httpd可以通過管道將訪問記錄和出錯(cuò)信息傳遞給另一個(gè)進(jìn)程,而不是寫入一個(gè)文件,由于無須對(duì)主服務(wù)器進(jìn)行編程,這個(gè)功能顯著地增強(qiáng)了日志的靈活性。只要用管道操作符"|"后面跟一個(gè)可執(zhí)行文件名,就可以使這個(gè)程序從標(biāo)準(zhǔn)輸入設(shè)備獲得事件記錄。Apache在啟動(dòng)時(shí),會(huì)同時(shí)啟動(dòng)這個(gè)管道日志進(jìn)程,并且在運(yùn)行過程中,如果這個(gè)進(jìn)程崩潰了,會(huì)重新啟動(dòng)這個(gè)進(jìn)程(所以我們稱這個(gè)技術(shù)為"可靠管道日志")。

管道日志進(jìn)程由其父進(jìn)程Apache httpd產(chǎn)生,并繼承其權(quán)限,這意味著管道進(jìn)程通常是作為root運(yùn)行的,所以保持這個(gè)程序簡(jiǎn)單而安全極為重要。

管道日志的一種重要用途是,允許日志滾動(dòng)而無須重新啟動(dòng)服務(wù)器。為此,服務(wù)器提供了一個(gè)簡(jiǎn)單的程序rotatelogs 。每24小時(shí)滾動(dòng)一次日志的例子如下:

CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common

注意:引號(hào)用于界定整個(gè)管道命令行。雖然這是針對(duì)訪問日志的,但是其用法對(duì)于其他日志也一樣。

在其他站點(diǎn),有一個(gè)類似但更靈活的日志滾動(dòng)程序叫cronolog 。

如果有較簡(jiǎn)單的離線處理日志的方案,就不應(yīng)該使用條件日志和管道日志,即使它們非常強(qiáng)大。

虛擬主機(jī)

如果服務(wù)器配有若干虛擬主機(jī),那么還有幾個(gè)控制日志文件的功能。首先,可以把日志指令放在<VirtualHost>段之外,讓它們與主服務(wù)器使用同一個(gè)訪問日志和錯(cuò)誤日志來記錄所有的請(qǐng)求和錯(cuò)誤,但是這樣就不能方便的獲得每個(gè)虛擬主機(jī)的信息了。

如果把CustomLogErrorLog指令放在<VirtualHost>段內(nèi),所有對(duì)這個(gè)虛擬主機(jī)的請(qǐng)求和錯(cuò)誤信息會(huì)被記錄在其私有的日志文件中,那些沒有在<VirtualHost>段內(nèi)使用日志指令的虛擬主機(jī)將仍然和主服務(wù)器使用同一個(gè)日志。這種方法對(duì)虛擬主機(jī)較少的服務(wù)器很有用,但虛擬主機(jī)非常多時(shí),就會(huì)帶來管理上的困難,還經(jīng)常會(huì)產(chǎn)生文件描述符短缺的問題。

對(duì)于訪問日志,有一個(gè)很好的折衷方案,在同一個(gè)訪問日志文件中記錄對(duì)所有主機(jī)的訪問,而每條記錄都注明虛擬主機(jī)的信息,日后再把記錄拆開存入不同的文件。例如:

LogFormat "%v %l %u %t \"%r\" %>s %b" comonvhost
CustomLog logs/access_log comonvhost

%v 用來附加虛擬主機(jī)的信息。有個(gè)split-logfile程序可以根據(jù)不同的虛擬主機(jī)信息對(duì)日志進(jìn)行拆分,并將結(jié)果存入不同的文件。

其他日志文件

記錄接收和發(fā)送的實(shí)際字節(jié)數(shù)

mod_logio增加了兩個(gè)額外的LogFormat字段(%I 和 %O)用于記錄接收和發(fā)送的實(shí)際字節(jié)數(shù)。

對(duì)比記錄(Forensic Logging)

mod_log_forensic提供了對(duì)客戶端請(qǐng)求的對(duì)比記錄,也就是在請(qǐng)求被處理之前和處理完成之后進(jìn)行兩次記錄,所以對(duì)比日志(forensic log)對(duì)于每個(gè)請(qǐng)求都包含兩條記錄。對(duì)比記錄器(forensic logger)十分嚴(yán)格,不可以進(jìn)行定制。它可以成為無價(jià)的調(diào)試和安全工具。

PID文件

在啟動(dòng)時(shí),Apache httpd將會(huì)在logs/httpd.pid文件中保存其父進(jìn)程httpd的進(jìn)程ID(process id[PID])。該文件名可以用PidFile指令改變。該P(yáng)ID可以被管理員利用來重新啟動(dòng)或者終止服務(wù)器后臺(tái)守護(hù)進(jìn)程。在Windows中,可以使用命令行參數(shù) -k 。更多信息請(qǐng)參見停止和重新啟動(dòng)。

腳本日志

為了方便調(diào)試,可以用ScriptLog指令來記錄CGI腳本的輸入和輸出。此功能應(yīng)該僅用于測(cè)試,而不應(yīng)該用于正常工作的服務(wù)器。更多資料請(qǐng)參見mod_cgi文檔。

重寫日志

在使用強(qiáng)大且靈活的mod_rewrite時(shí),幾乎都有必要用RewriteLog來幫助調(diào)試。這個(gè)日志提供了重寫引擎如何轉(zhuǎn)換請(qǐng)求的詳細(xì)分解信息,其詳細(xì)程度取決于RewriteLogLevel指令。

Previous article: Next article: