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

directory search
首頁 版本說明 從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ì)心急者的概述 要求 下載 解壓 配置源代碼樹 編譯 安裝 配置 測試 升級(jí) 啟動(dòng) Apache是怎樣啟動(dòng)的 啟動(dòng)時(shí)發(fā)生錯(cuò)誤 隨系統(tǒng)啟動(dòng)時(shí)啟動(dòng) 額外信息 停止與重新啟動(dòng) 簡介 立即停止 優(yōu)雅重啟 立即重啟 優(yōu)雅停止 附錄:信號(hào)和競爭條件 運(yùn)行時(shí)配置指令 主配置文件 配置文件的語法 模塊 指令的作用域 .htaccess文件 配置段 配置段(容器)的類型 文件系統(tǒng)和網(wǎng)絡(luò)空間 虛擬主機(jī) 代理 允許使用哪些指令? 配置段的合并 內(nèi)容緩沖 簡介 緩沖概述 安全方面的考慮 文件句柄緩沖 內(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) 簡介 選擇一個(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簡介 實(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ī) 概述 簡單的動(dòng)態(tài)虛擬主機(jī) 一個(gè)實(shí)際的個(gè)人主頁系統(tǒng) 在同一個(gè)服務(wù)器上架設(shè)多個(gè)主機(jī)的虛擬系統(tǒng) 更為有效的基于IP地址的虛擬主機(jī) 使用老版本的Apache 使用mod_rewrite實(shí)現(xiàn)簡單的動(dòng)態(tài)虛擬主機(jī) 使用mod_rewrite的個(gè)人主頁系統(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è)簡單示例 拒絕服務(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)模塊和指令 簡介 先決條件 啟用認(rèn)證 允許多人訪問 可能存在的問題 其他認(rèn)證方法 更多信息 CGI動(dòng)態(tài)頁面 簡介 配置Apache以允許CGI 編寫CGI程序 程序還是不能運(yùn)行! 幕后是怎樣操作的? CGI模塊/庫 更多信息 服務(wù)器端包含 簡介 什么是SSI? 配置服務(wù)器以允許SSI 基本SSI指令 附加的例子 我還能設(shè)置其它什么? 執(zhí)行命令 高級(jí)SSI技術(shù) 總結(jié) .htaccess文件 .htaccess文件 工作原理和使用方法 (不)使用.htaccess文件的場合 指令的生效 認(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 測試安裝 編譯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 語法 選項(xiàng) ab 語法 選項(xiàng) Bugs apachectl 語法 選項(xiàng) apxs 語法 選項(xiàng) 舉例 configure 語法 選項(xiàng) 環(huán)境變量 dbmmanage 語法 選項(xiàng) Bugs htcacheclean 語法 選項(xiàng) 返回值 htdbm 語法 選項(xiàng) Bugs 返回值 舉例 安全方面的考慮 限制 htdigest 語法 選項(xiàng) htpasswd 語法 選項(xiàng) 返回值 舉例 安全方面的考慮 限制 logresolve 語法 選項(xiàng) rotatelogs 語法 選項(xiàng) Portability suexec 語法 選項(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)證 語言/國家代碼 Apache 模塊 描述模塊的術(shù)語 說明 狀態(tài) 源代碼文件 模塊標(biāo)識(shí)符 兼容性 描述指令的術(shù)語 說明 語法 默認(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 交替間隔語法 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)容編碼 字符集和語言 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 正向和反向代理 簡單示例 控制對(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

Apache MPM 公共指令

說明 收集了被多個(gè)多路處理模塊(MPM)實(shí)現(xiàn)的公共指令
狀態(tài) MPM

AcceptMutex 指令

說明 Apache用于串行化多個(gè)子進(jìn)程在(多個(gè))網(wǎng)絡(luò)套接字(socket)上接受請(qǐng)求的方法
語法 AcceptMutex Default|method
默認(rèn)值 AcceptMutex Default
作用域 server config
狀態(tài) MPM
模塊 prefork, worker

AcceptMutex指令用于設(shè)置串行化多個(gè)子進(jìn)程在(多個(gè))網(wǎng)絡(luò)套接字上接受請(qǐng)求的方法。在2.0版本以前,只能在編譯時(shí)設(shè)定此方法。應(yīng)當(dāng)在這里使用的最佳方法取決于不同的硬件體系結(jié)構(gòu)和操作系統(tǒng)。欲知詳情,請(qǐng)參見性能調(diào)節(jié)文檔。

如果設(shè)置為Default ,那么將會(huì)使用編譯時(shí)自動(dòng)選擇的默認(rèn)值。其他可用的方法在下面列出。注意,并不是所有的方法在所有的平臺(tái)上都是可用的,如果指定了一個(gè)不可用的方法,將會(huì)在錯(cuò)誤日志中記錄下這個(gè)不可用的方法。

flock
這種方法調(diào)用系統(tǒng)函數(shù)flock(2)來鎖定一個(gè)加鎖文件(其位置取決于LockFile指令)。
fcntl
這種方法調(diào)用系統(tǒng)函數(shù)fcntl(2)來鎖定一個(gè)加鎖文件(其位置取決于LockFile指令)。
posixsem
(2.0及更新版本)這種方法使用了POSIX信號(hào)燈。如果一個(gè)運(yùn)行中的線程占有了互斥segfault ,則信號(hào)燈的所有者將不會(huì)被恢復(fù),從而導(dǎo)致服務(wù)器的掛起和失去響應(yīng)。
pthread
(1.3及更新版本)這種方法使用了POSIX互斥,按理應(yīng)該可以用于所有完整實(shí)現(xiàn)了POSIX線程規(guī)范的體系中,但是似乎只能用在Solaris2.5及更新版本中,甚至只能在某種配置下才正常運(yùn)作。如果遇到這種情況,則應(yīng)該提防服務(wù)器的掛起和失去響應(yīng)。只提供靜態(tài)內(nèi)容的服務(wù)器可能不受影響。
sysvsem
(1.3及更新版本)這種方案使用SysV風(fēng)格的信號(hào)燈以實(shí)現(xiàn)互斥。不幸的是,SysV風(fēng)格的信號(hào)燈有一些副作用,其一是,Apache有可能不能在結(jié)束以前釋放這種信號(hào)燈(見ipcs()的man page),另外,這種信號(hào)燈API給與網(wǎng)絡(luò)服務(wù)器有相同uid的CGI提供了拒絕服務(wù)攻擊的機(jī)會(huì)(所有CGI,除非用了類似suexeccgiwrapper)。鑒于此,在多數(shù)體系中都不用這種方法,除了IRIX(因?yàn)榧渔i文件的方法在IRIX中代價(jià)太高)。

如果你想知道編譯時(shí)自動(dòng)選擇的默認(rèn)值,你可以將LogLevel設(shè)為debug ,這樣默認(rèn)的AcceptMutex就會(huì)記錄到ErrorLog中。

警告

在大多數(shù)系統(tǒng)上,使用pthread時(shí),如果一個(gè)子進(jìn)程在持有AcceptCntl互斥信號(hào)時(shí)異常中止,服務(wù)器將會(huì)掛起和失去響應(yīng),此時(shí)必須手動(dòng)重啟服務(wù)器才能解決問題。但Solaris是一個(gè)例外,因?yàn)樗峁┝艘粋€(gè)機(jī)制(Apache利用了該機(jī)制),允許在一個(gè)持有互斥信號(hào)的子進(jìn)程異常中止后恢復(fù)互斥信號(hào)。

如果你的操作系統(tǒng)實(shí)現(xiàn)了pthread_mutexattr_setrobust_np()函數(shù),基本上就能安全的使用pthread選項(xiàng)。

CoreDumpDirectory 指令

說明 Apache使用的內(nèi)核轉(zhuǎn)儲(chǔ)目錄
語法 CoreDumpDirectory directory
默認(rèn)值 參見說明
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_winnt, prefork, worker

這個(gè)指令用于控制Apache使用的內(nèi)核轉(zhuǎn)儲(chǔ)目錄。默認(rèn)位于ServerRoot下,因?yàn)檫@個(gè)目錄通常對(duì)于運(yùn)行服務(wù)器的用戶是不可寫的,內(nèi)核轉(zhuǎn)儲(chǔ)一般也就不會(huì)寫入內(nèi)容。如果你在調(diào)試中需要內(nèi)核轉(zhuǎn)儲(chǔ),你可以用這個(gè)指令來指定另外一個(gè)目錄。

Linux上的內(nèi)核轉(zhuǎn)儲(chǔ)

如果Apache以root身份啟動(dòng)并切換至其他用戶,即使指定的轉(zhuǎn)儲(chǔ)目錄對(duì)進(jìn)程是可寫的,Linux內(nèi)核也將禁止Apache進(jìn)行內(nèi)核轉(zhuǎn)儲(chǔ)。但是Apache2.0.46及以后的版本在你明確指定CoreDumpDirectory的情況下,能夠在Linux2.4以上的版本中強(qiáng)制實(shí)現(xiàn)內(nèi)核轉(zhuǎn)儲(chǔ)。

EnableExceptionHook 指令

說明 在子進(jìn)程崩潰以后啟用一個(gè)鉤子來運(yùn)行異常處理程序
語法 EnableExceptionHook On|Off
默認(rèn)值 EnableExceptionHook Off
作用域 server config
狀態(tài) MPM
模塊 prefork, worker
兼容性 僅在 Apache 2.0.49 及以后的版本中可用

因?yàn)榘踩?,這個(gè)指令僅在編譯時(shí)使用了 --enable-exception-hook 選項(xiàng)的情況下才可用。它會(huì)在一個(gè)子進(jìn)程崩潰以后啟用一個(gè)鉤子(hook)來運(yùn)行一個(gè)外部模塊以做些后繼處理。

目前有兩個(gè)模塊(mod_whatkilledusmod_backtrace)可以被鉤子使用。請(qǐng)參見Jeff Trawick的EnableExceptionHook site以獲得更多信息。

GracefulShutdownTimeout 指令

說明 指定優(yōu)雅停止服務(wù)器的超時(shí)秒數(shù)
語法 GracefulShutDownTimeout seconds
默認(rèn)值 GracefulShutDownTimeout 0
作用域 server config
狀態(tài) MPM
模塊 prefork, worker, event
兼容性 僅在 Apache 2.2 及以后的版本中可用

GracefulShutdownTimeout設(shè)置服務(wù)器在收到"優(yōu)雅停止"信號(hào)后最多允許使用多少秒來處理尚未完成的連接,超時(shí)后服務(wù)器將強(qiáng)行退出。

設(shè)為"0"表示永不超時(shí),也就是服務(wù)器必須在處理完所有尚未完成的請(qǐng)求之后才能退出。

Group 指令

說明 對(duì)請(qǐng)求提供服務(wù)的Apache子進(jìn)程運(yùn)行時(shí)的用戶組
語法 Group unix-group
默認(rèn)值 Group #-1
作用域 server config
狀態(tài) MPM
模塊 beos, mpmt_os2, prefork, worker
兼容性 Apache2.0以后只對(duì)全局配置有效

Group指令指定了用于對(duì)客戶端請(qǐng)求提供服務(wù)的Apache子進(jìn)程運(yùn)行時(shí)的用戶組。為了使用這個(gè)指令,Apache必須以root初始化啟動(dòng),否則在切換用戶組時(shí)會(huì)失敗,并繼續(xù)以初始化啟動(dòng)時(shí)的用戶組運(yùn)行。Unix-group可以是下列之一:

用戶組的名稱
通過名稱引用組。
"#"號(hào)后跟一個(gè)組編號(hào)(GID)
通過編號(hào)引用組。

示例

Group www-group

建議你專門為Apache服務(wù)器新建一個(gè)用戶組。一些管理員使用nobody用戶,但是這并非總是可用或是合適的。

安全

不要將Group(或User)設(shè)置成root ,除非你明確知道自己在做什么,并且明白其風(fēng)險(xiǎn)所在。

特別提示:在<VirtualHost>段中使用該指令已經(jīng)不再被支持了。你可以使用suexecSuexecUserGroup指令來達(dá)到這個(gè)目的。

注意

雖然Group指令也存在于beosmpmt_os2MPM中,但是事實(shí)上沒用任何用處,只不過是個(gè)擺飾罷了。

Listen 指令

說明 服務(wù)器監(jiān)聽的IP地址和端口
語法 Listen [IP-address:]portnumber [protocol]
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker, event
兼容性 Apache2.0以后必須設(shè)置該指令,protocol參數(shù)僅在2.1.5及以后版本中可用

Listen指令指示Apache只在指定的IP地址和端口上監(jiān)聽;默認(rèn)情況下Apache會(huì)在所有IP地址上監(jiān)聽。Listen是一個(gè)必須設(shè)置的指令。如果在配置文件中找不到這個(gè)指令,服務(wù)器將無法啟動(dòng)。這和先前的版本不一樣。

Listen指令指定服務(wù)器在那個(gè)端口或地址和端口的組合上監(jiān)聽接入請(qǐng)求。如果只指定一個(gè)端口,服務(wù)器將在所有地址上監(jiān)聽該端口。如果指定了地址和端口的組合,服務(wù)器將在指定地址的指定端口上監(jiān)聽。

使用多個(gè)Listen指令可以指定多個(gè)不同的監(jiān)聽端口和/或地址端口組合。服務(wù)器將會(huì)對(duì)列出的所有端口和地址端口組合上的請(qǐng)求作出應(yīng)答。

例如,想要服務(wù)器接受80和8000端口上的請(qǐng)求,可以這樣設(shè)置:

Listen 80
Listen 8000

為了讓服務(wù)器在兩個(gè)確定的地址端口組合上接受請(qǐng)求,可以這樣設(shè)置:

Listen 192.170.2.1:80
Listen 192.170.2.5:8000

IPv6地址必須像下面的例子一樣,用方括號(hào)括起來:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

可選的protocol參數(shù)在大多數(shù)情況下并不需要。若未指定該參數(shù),則將為443端口使用默認(rèn)的https協(xié)議,為其它端口使用http協(xié)議。在這里指定協(xié)議是為了確定使用哪個(gè)模塊來處理請(qǐng)求,以及根據(jù)AcceptFilter指令根據(jù)不同的協(xié)議有針對(duì)性的進(jìn)行優(yōu)化。

僅在使用非標(biāo)準(zhǔn)端口時(shí)才需要指定protocol參數(shù)。比如在8443端口運(yùn)行https協(xié)議:

Listen 192.170.2.1:8443 https

錯(cuò)誤條件

多個(gè)Listen指令指定了同一個(gè)地址和端口的組合后,會(huì)導(dǎo)致"Address already in use"錯(cuò)誤。

參見

  • DNS問題
  • 地址和端口綁定

ListenBackLog 指令

說明 半鏈接(pending connection)隊(duì)列的最大長度
語法 ListenBacklog backlog
默認(rèn)值 ListenBacklog 511
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

半鏈接(pending connection)隊(duì)列的最大長度。一般不需要調(diào)整此項(xiàng)參數(shù),然而在一些系統(tǒng)上,必須增大此值以抵御TCP SYN 洪水攻擊。參見操作系統(tǒng)的listen(2)系統(tǒng)調(diào)用的后備參數(shù)。

操作系統(tǒng)常常將此值限制為一個(gè)較小的數(shù)字,具體根據(jù)操作系統(tǒng)的不同而不同。需要注意的是,許多操作系統(tǒng)并不是正好使用后備數(shù)值,而是取決于設(shè)置的值(通常大于后備值)。

LockFile 指令

說明 接受串行鎖文件的位置
語法 LockFile filename
默認(rèn)值 LockFile logs/accept.lock
作用域 server config
狀態(tài) MPM
模塊 prefork, worker

LockFile指令設(shè)置當(dāng)AcceptMutex指令的值是fcntlflock的時(shí)候,Apache使用的鎖文件的位置。該指令通常保持它的默認(rèn)值。改變默認(rèn)值的主要原因是logs目錄位于一個(gè)NFS文件系統(tǒng)上,因?yàn)殒i文件必須位于本地磁盤上。主服務(wù)器進(jìn)程的PID會(huì)自動(dòng)添加到文件名后面。

安全

最好不要將此文件放在任何人都可以具有寫權(quán)限的目錄(比如/var/tmp)中,因?yàn)閯e人可以通過建立一個(gè)與服務(wù)器企圖建立的鎖文件同名的文件,來阻止服務(wù)器啟動(dòng),從而造成一個(gè)拒絕服務(wù)攻擊。

參見

  • AcceptMutex

MaxClients 指令

說明 允許同時(shí)伺服的最大接入請(qǐng)求數(shù)量
語法 MaxClients number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 beos, prefork, worker

MaxClients指令設(shè)置了允許同時(shí)伺服的最大接入請(qǐng)求數(shù)量。任何超過MaxClients限制的請(qǐng)求都將進(jìn)入等候隊(duì)列,直到達(dá)到ListenBacklog指令限制的最大值為止。一旦一個(gè)鏈接被釋放,隊(duì)列中的請(qǐng)求將得到服務(wù)。

對(duì)于非線程型的MPM(也就是prefork),MaxClients表示可以用于伺服客戶端請(qǐng)求的最大子進(jìn)程數(shù)量,默認(rèn)值是256。要增大這個(gè)值,你必須同時(shí)增大ServerLimit 。

對(duì)于線程型或者混合型的MPM(也就是beosworker),MaxClients表示可以用于伺服客戶端請(qǐng)求的最大線程數(shù)量。線程型的beos的默認(rèn)值是50。對(duì)于混合型的MPM默認(rèn)值是16(ServerLimit)乘以25(ThreadsPerChild)的結(jié)果。因此要將MaxClients增加到超過16個(gè)進(jìn)程才能提供的時(shí)候,你必須同時(shí)增加ServerLimit的值。

MaxMemFree 指令

說明 主內(nèi)存分配程序在未調(diào)用free()的情況下允許持有的最大自由內(nèi)存數(shù)量(KB)
語法 MaxMemFree KBytes
默認(rèn)值 MaxMemFree 0
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, prefork, worker, mpm_winnt

MaxMemFree指令用于設(shè)置主內(nèi)存分配程序在未調(diào)用free()的情況下允許持有的最大自由內(nèi)存數(shù)量(KB)。若未設(shè)置或設(shè)置為"0",將表示無限制。

MaxRequestsPerChild 指令

說明 每個(gè)子進(jìn)程在其生存期內(nèi)允許伺服的最大請(qǐng)求數(shù)量
語法 MaxRequestsPerChild number
默認(rèn)值 MaxRequestsPerChild 10000
作用域 server config
狀態(tài) MPM
模塊 mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

MaxRequestsPerChild指令設(shè)置每個(gè)子進(jìn)程在其生存期內(nèi)允許伺服的最大請(qǐng)求數(shù)量。到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會(huì)結(jié)束。如果MaxRequestsPerChild為"0",子進(jìn)程將永遠(yuǎn)不會(huì)結(jié)束。

不同的默認(rèn)值

mpm_netwarempm_winnt上的默認(rèn)值是"0"。

MaxRequestsPerChild設(shè)置成非零值有兩個(gè)好處:

  • 可以防止(偶然的)內(nèi)存泄漏無限進(jìn)行,從而耗盡內(nèi)存。
  • 給進(jìn)程一個(gè)有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時(shí)候減少活動(dòng)進(jìn)程的數(shù)量。

注意

對(duì)于KeepAlive鏈接,只有第一個(gè)請(qǐng)求會(huì)被計(jì)數(shù)。事實(shí)上,它改變了每個(gè)子進(jìn)程限制最大鏈接數(shù)量的行為。

MaxSpareThreads 指令

說明 最大空閑線程數(shù)
語法 MaxSpareThreads number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, mpmt_os2, worker

設(shè)置最大空閑線程數(shù)。不同的MPM對(duì)這個(gè)指令的處理是不一樣的:

worker的默認(rèn)值是"250"。這個(gè)MPM將基于整個(gè)服務(wù)器監(jiān)視空閑線程數(shù)。如果服務(wù)器中總的空閑線程數(shù)太多,子進(jìn)程將殺死多余的空閑線程。

mpm_netware的默認(rèn)值是"100"。既然這個(gè)MPM只運(yùn)行單獨(dú)一個(gè)子進(jìn)程,此MPM當(dāng)然亦基于整個(gè)服務(wù)器監(jiān)視空閑線程數(shù)。

beosmpmt_os2的工作方式與mpm_netware差不多,beos的默認(rèn)值是"50";mpmt_os2的默認(rèn)值是"10"。

限制

MaxSpareThreads的取值范圍是有限制的。Apache將按照如下限制自動(dòng)修正你設(shè)置的值:

  • mpm_netware要求其小于等于MinSpareThreads
  • worker要求其大于等于MinSpareThreads加上ThreadsPerChild的和

參見

  • MinSpareThreads
  • StartServers

MinSpareThreads 指令

說明 最小空閑線程數(shù)
語法 MinSpareThreads number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, mpmt_os2, worker

設(shè)置最小空閑線程數(shù),用于處理可能到來的突發(fā)請(qǐng)求。不同的MPM對(duì)這個(gè)指令的處理是不一樣的:

worker的默認(rèn)值是"75"。這個(gè)MPM將基于整個(gè)服務(wù)器監(jiān)視空閑線程數(shù)。如果服務(wù)器中總的空閑線程數(shù)太少,子進(jìn)程將產(chǎn)生新的空閑線程。

mpm_netware的默認(rèn)值是"10"。既然這個(gè)MPM只運(yùn)行單獨(dú)一個(gè)子進(jìn)程,此MPM當(dāng)然亦基于整個(gè)服務(wù)器監(jiān)視空閑線程數(shù)。

beosmpmt_os2的工作方式與mpm_netware差不多,beos的默認(rèn)值是"1";mpmt_os2的默認(rèn)值是"5"。

參見

  • MaxSpareThreads
  • StartServers

PidFile 指令

說明 服務(wù)器用于記錄父進(jìn)程(監(jiān)控進(jìn)程)PID的文件
語法 PidFile filename
默認(rèn)值 PidFile logs/httpd.pid
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_winnt, mpmt_os2, prefork, worker

PidFile指令設(shè)置服務(wù)器用于記錄父進(jìn)程(監(jiān)控進(jìn)程)PID的文件。如果指定的不是絕對(duì)路徑,那么將視為基于ServerRoot的相對(duì)路徑。

示例

PidFile /var/run/apache.pid

這個(gè)文件通常用來便于給服務(wù)器父進(jìn)程發(fā)送一個(gè)信號(hào),用于關(guān)閉或重啟服務(wù)器,以重新打開ErrorLogTransferLog文件、重新讀取配置文件。這些可以通過發(fā)送一個(gè)"SIGHUP"(kill -1)信號(hào)到PidFile記錄的進(jìn)程PID。

PidFile和其他日志文件一樣要注意放置位置和安全問題。

注意

從Apache2開始,推薦使用apachectl腳本來啟動(dòng)或停止服務(wù)器。

ReceiveBufferSize 指令

說明 TCP接收緩沖區(qū)大小(字節(jié))
語法 ReceiveBufferSize bytes
默認(rèn)值 ReceiveBufferSize 0
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

這個(gè)指令設(shè)置服務(wù)器的TCP接收緩沖區(qū)的大小(字節(jié))。提高這個(gè)值會(huì)導(dǎo)致兩個(gè)后果:高速度和高潛伏時(shí)間(100ms左右)。

如果設(shè)置為"0",將使用操作系統(tǒng)默認(rèn)值。

ScoreBoardFile 指令

說明 存儲(chǔ)子進(jìn)程協(xié)調(diào)數(shù)據(jù)(coordination data)的文件
語法 ScoreBoardFile file-path
默認(rèn)值 ScoreBoardFile logs/apache_status
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_winnt, prefork, worker

Apache使用記分板(scoreboard)在父進(jìn)程和子進(jìn)程之間進(jìn)行通信。一些體系結(jié)構(gòu)要求有一個(gè)文件來幫助通信。如果未指定這個(gè)文件,Apache會(huì)首先嘗試在匿名共享內(nèi)存中建立完整的記分板(scoreboard),若失敗,將繼續(xù)嘗試使用基于文件的共享存儲(chǔ)器在磁盤上建立這個(gè)文件。若利用這個(gè)指令指定這個(gè)文件的位置,則Apache將總是在磁盤上建立這個(gè)文件。

示例

ScoreBoardFile /var/run/apache_status

基于文件的共享存儲(chǔ)器對(duì)于使用直接訪問記分板(scoreboard)的第三方程序是很有用的。

ScoreBoardFile放置在RAM disk中會(huì)對(duì)速度提升有很大幫助。但是同其他日志文件一樣也要注意放置位置和安全問題。

參見

  • 停止和重啟Apache

SendBufferSize 指令

說明 TCP發(fā)送緩沖區(qū)大小(字節(jié))
語法 SendBufferSize bytes
默認(rèn)值 SendBufferSize 0
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

這個(gè)指令設(shè)置服務(wù)器的TCP發(fā)送緩沖區(qū)的大小(字節(jié))。提高這個(gè)值會(huì)導(dǎo)致兩個(gè)后果:高速度和高潛伏時(shí)間(100ms左右)。

如果設(shè)置為"0",將使用操作系統(tǒng)默認(rèn)值。

ServerLimit 指令

說明 服務(wù)器允許配置的進(jìn)程數(shù)上限
語法 ServerLimit number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 prefork, worker

對(duì)于preforkMPM,這個(gè)指令設(shè)置了MaxClients最大允許配置的數(shù)值。對(duì)于workerMPM,這個(gè)指令和ThreadLimit結(jié)合使用設(shè)置了MaxClients最大允許配置的數(shù)值。任何在重啟期間對(duì)這個(gè)指令的改變都將被忽略,但對(duì)MaxClients的修改卻會(huì)生效。

使用這個(gè)指令時(shí)要特別當(dāng)心。如果將ServerLimit設(shè)置成一個(gè)高出實(shí)際需要許多的值,將會(huì)有過多的共享內(nèi)存被分配。如果將ServerLimitMaxClients設(shè)置成超過系統(tǒng)的處理能力,Apache可能無法啟動(dòng),或者系統(tǒng)將變得不穩(wěn)定。

對(duì)于preforkMPM,只有在你需要將MaxClients設(shè)置成高于默認(rèn)值256的時(shí)候才需要使用這個(gè)指令。要將此指令的值保持和MaxClients一樣。

對(duì)于workerMPM,只有在你需要將MaxClientsThreadsPerChild設(shè)置成需要超過默認(rèn)值16個(gè)子進(jìn)程的時(shí)候才需要使用這個(gè)指令。不要將該指令的值設(shè)置的比MaxClients ThreadsPerChild需要的子進(jìn)程數(shù)量高。

注意

Apache在編譯時(shí)內(nèi)部有一個(gè)硬限制"ServerLimit 20000"(對(duì)于preforkMPM為"ServerLimit 200000")。你不能超越這個(gè)限制。

參見

  • 停止和重啟Apache

StartServers 指令

說明 服務(wù)器啟動(dòng)時(shí)建立的子進(jìn)程數(shù)
語法 StartServers number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 mpmt_os2, prefork, worker

StartServers指令設(shè)置了服務(wù)器啟動(dòng)時(shí)建立的子進(jìn)程數(shù)量。因?yàn)樽舆M(jìn)程數(shù)量動(dòng)態(tài)的取決于負(fù)載的輕重,所有一般沒有必要調(diào)整這個(gè)參數(shù)。

不同的MPM默認(rèn)值也不一樣。對(duì)于worker默認(rèn)值是"3"。對(duì)于prefork默認(rèn)值是"5",mpmt_os2是"2"。

StartThreads 指令

說明 服務(wù)器啟動(dòng)時(shí)建立的線程數(shù)
語法 StartThreads number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 beos, mpm_netware

設(shè)置了服務(wù)器啟動(dòng)時(shí)建立的線程數(shù)量。因?yàn)榫€程數(shù)量動(dòng)態(tài)的取決于負(fù)載的輕重,所有一般沒有必要調(diào)整這個(gè)參數(shù)。

對(duì)于mpm_netware ,默認(rèn)值是"50",由于只有一個(gè)進(jìn)程,因此所有的線程都將用于伺服請(qǐng)求。

對(duì)于beos ,默認(rèn)值是"10",同樣也是所有的線程都將用于伺服請(qǐng)求。

ThreadLimit 指令

說明 每個(gè)子進(jìn)程可配置的線程數(shù)上限
語法 ThreadLimit number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 mpm_winnt, worker
兼容性 僅用于2.0.41及以后版本的mpm_winnt

這個(gè)指令設(shè)置了每個(gè)子進(jìn)程可配置的線程數(shù)ThreadsPerChild上限。任何在重啟期間對(duì)這個(gè)指令的改變都將被忽略,但對(duì)ThreadsPerChild的修改卻會(huì)生效。

使用這個(gè)指令時(shí)要特別當(dāng)心。如果將ThreadLimit設(shè)置成一個(gè)高出ThreadsPerChild實(shí)際需要很多的值,將會(huì)有過多的共享內(nèi)存被分配。如果將ThreadLimitThreadsPerChild設(shè)置成超過系統(tǒng)的處理能力,Apache可能無法啟動(dòng),或者系統(tǒng)將變得不穩(wěn)定。該指令的值應(yīng)當(dāng)和ThreadsPerChild可能達(dá)到的最大值保持一致。

對(duì)于mpm_winnt,ThreadLimit的默認(rèn)值是1920;對(duì)于其他MPM這個(gè)值是64。

注意

Apache在編譯時(shí)內(nèi)部有一個(gè)硬性的限制"ThreadLimit 20000"(對(duì)于mpm_winnt是"ThreadLimit 15000"),你不能超越這個(gè)限制。

ThreadsPerChild 指令

說明 每個(gè)子進(jìn)程建立的線程數(shù)
語法 ThreadsPerChild number
默認(rèn)值 參見下面的說明
作用域 server config
狀態(tài) MPM
模塊 mpm_winnt, worker

這個(gè)指令設(shè)置了每個(gè)子進(jìn)程建立的線程數(shù)。子進(jìn)程在啟動(dòng)時(shí)建立這些線程后就不再建立新的線程了。如果使用一個(gè)類似于mpm_winnt只有一個(gè)子進(jìn)程的MPM,這個(gè)數(shù)值要足夠大,以便可以處理可能的請(qǐng)求高峰。如果使用一個(gè)類似于worker有多個(gè)子進(jìn)程的MPM,每個(gè)子進(jìn)程所擁有的所有線程的總數(shù)要足夠大,以便可以處理可能的請(qǐng)求高峰。

對(duì)于mpm_winnt,ThreadsPerChild的默認(rèn)值是64;對(duì)于其他MPM是25

ThreadStackSize 指令

說明 處理客戶端連接的線程使用的棧尺寸(字節(jié))
語法 ThreadStackSize size
默認(rèn)值 NetWare上為65536;其它平臺(tái)上等于操作系統(tǒng)默認(rèn)值
作用域 server config
狀態(tài) MPM
模塊 mpm_netware, mpm_winnt, worker
兼容性 僅在 Apache 2.1 及以后的版本中可用

ThreadStackSize指令設(shè)置了處理客戶端連接(包括調(diào)用模塊以協(xié)助處理)的線程允許使用的最大棧尺寸(字節(jié))。在大多數(shù)情況下,操作系統(tǒng)默認(rèn)的棧尺寸很合理,但是在某些情況下,需要調(diào)整這個(gè)值:

  • 在默認(rèn)棧尺寸較小的平臺(tái)上(比如HP-UX),Apache可能會(huì)在使用一些需要較大棧尺寸的第三方模塊時(shí)崩潰。這樣的問題可以通過將ThreadStackSize設(shè)置為一個(gè)較大的值來解決。這種調(diào)整應(yīng)當(dāng)僅僅在第三方模塊提供者明確要求的情況下才需要,或者是您通過診斷確定是由于棧空間太小而導(dǎo)致崩潰。
  • 在某些平臺(tái)上,如果默認(rèn)的??臻g大于服務(wù)器運(yùn)行所需空間,那么將ThreadStackSize值降低到小于操作系統(tǒng)默認(rèn)值可以讓每個(gè)進(jìn)程中允許生成的最大線程數(shù)量增加。這種類型的調(diào)整應(yīng)該僅在測試環(huán)境中使用,并且對(duì)所有服務(wù)器進(jìn)程進(jìn)行充分的測試,因?yàn)樘幚砟承┖币姷恼?qǐng)求需要較大的??臻g。一個(gè)很小的服務(wù)器配置變化就有可能使得當(dāng)前的ThreadStackSize設(shè)置變得不合適。

User 指令

說明 實(shí)際服務(wù)于請(qǐng)求的子進(jìn)程運(yùn)行時(shí)的用戶
語法 User unix-userid
默認(rèn)值 User #-1
作用域 server config
狀態(tài) MPM
模塊 prefork, worker
兼容性 2.0版本起僅在全局服務(wù)器配置中可用

User指令用于設(shè)置實(shí)際提供服務(wù)的子進(jìn)程的用戶。為了使用這個(gè)指令,服務(wù)器必須以root身份啟動(dòng)和初始化。如果你以非root身份啟動(dòng)服務(wù)器,子進(jìn)程將不能夠切換至非特權(quán)用戶,并繼續(xù)以啟動(dòng)服務(wù)器的原始用戶身份運(yùn)行。如果確實(shí)以root用戶啟動(dòng)了服務(wù)器,那么父進(jìn)程將仍然以root身份運(yùn)行。Unix-userid是下列值之一:

一個(gè)用戶名
通過用戶名引用用戶
"#"號(hào)后面跟一個(gè)用戶編號(hào)
通過用戶編號(hào)引用用戶

用于運(yùn)行子進(jìn)程的用戶必須是一個(gè)沒有特權(quán)的用戶,這樣才能保證子進(jìn)程無權(quán)訪問那些不想為外界所知的文件,同樣的,該用戶亦需沒有執(zhí)行那些不應(yīng)當(dāng)被外界執(zhí)行的程序的權(quán)限。強(qiáng)烈推薦你專門為Apache子進(jìn)程建立一個(gè)單獨(dú)的用戶和組。一些管理員使用nobody用戶,但是這并不能總是符合要求,因?yàn)榭赡苡衅渌绦蛞苍谑褂眠@個(gè)用戶。

安全

不要將User(或Group)設(shè)置成root ,除非你明確知道自己在做什么,并且明白其風(fēng)險(xiǎn)所在。

特別提示:在<VirtualHost>段中使用該指令已經(jīng)不再被支持了。你可以使用suexecSuexecUserGroup指令來達(dá)到這個(gè)目的。

注意

雖然User指令也存在于beosmpmt_os2MPM中,但是事實(shí)上沒用任何用處,只不過是個(gè)擺飾罷了。

Previous article: Next article: