第1章 關於Apache 1
1.1 Apache 1.3.x介紹 1
1.2 Apache 2.0/2.2介紹 2
1.3 Apache 2.3/2.4介紹 3
第2章 Apache的安裝 6
2.1 使用二進製程序安裝 6
2.1.1 使用rpm或deb格式安裝 6
2.1.2 使用已經編譯好的包安裝 8
2.2 使用源代碼安裝Apache 11
2.2.1 編譯安裝Apache 12
2.2.2 使用Apache Toolbox編譯 21
2.3 常見問題解答(FAQ) 23
2.3.1 常用的優化參數 23
2.3.2 關於-O參數的設置 24
2.3.3 不知道該使用哪種參數進行優化 25
2.3.4 make install齣錯 25
2.3.5 安裝mod_deflate模塊齣錯 25
2.3.6 suEXEC模塊的安裝 26
2.3.7 無法安裝mod_authnz_ldap模塊 27
第3章 運行、監控Apache 29
3.1 運行Apache 29
3.1.1 手動啓動Apache服務器 29
3.1.2 自動啓動Apache服務器 30
3.1.3 停止Apache服務器 35
3.1.4 使用apachectl程序控製Apache 36
3.1.5 運行多個Apache服務器 37
3.1.6 使用<IfDefine>容器實現不同的配置 37
3.1.7 httpd命令行參數 38
3.2 監控Apache 40
3.2.1 Apache自帶的Web監視器 41
3.2.2 使用第三方的工具來監控Apache 46
3.3 常見問題解答(FAQ) 49
3.3.1 Apache啓動後通過瀏覽器訪問提示:"您沒有權限訪問此服務器上的/" 49
3.3.2 啓動Apache時提示的常見錯誤 50
第4章 Apache模塊 51
4.1 模塊的類型 52
4.2 使用apxs編譯安裝模塊 52
4.3 使用靜態鏈接模塊 56
4.4 使用動態鏈接模塊 56
4.4.1 Apache 2.x動態鏈接模塊使用方法 57
4.4.2 Apache 1.3.x動態鏈接模塊使用方法 58
4.5 為Apache增加新模塊 59
4.5.1 Perl 59
4.5.2 PHP 62
4.6 常見問題解答(FAQ) 64
4.6.1 以靜態的方式編譯PHP到Apache 1.3.x中 64
4.6.2 能否將PHP靜態編譯到Apache 2.x中 64
4.6.3 如何測試已經安裝的PHP 64
4.6.4 編譯瞭mod_perl模塊,但是Apache無法加載它 65
4.6.5 編譯mod_perl模塊齣錯 66
4.6.6 如何測試Apache的CGI是否支持Perl 66
4.6.7 如何測試mod_perl已經啓動 67
4.6.8 測試mod_perl是否工作 68
4.6.9 使用mod_perl來加速Perl腳本 69
第5章 配置Apache 71
5.1 http.conf文件 72
5.1.1 主服務器部分 74
5.1.2 容器部分 78
5.1.3 服務器擴展部分 81
5.2 .htaccess文件 82
5.2.1 映射用戶到目錄 83
5.2.2 目錄的索引 85
5.2.3 GUI配置工具 90
5.3 常見問題解答(FAQ) 95
5.3.1 使用httpd -D來指定ServerRoot目錄 95
5.3.2 Port 和Bindaddress指令 96
5.3.3 容器的處理順序 96
5.3.4 目錄、文件、網絡容器的安全問題 97
5.3.5 關於Perl和PHP指令 98
5.3.6 .htaccess文件中寫入瞭配置指令沒有生效 98
5.3.7 使用suEXEC 98
5.3.8 將目錄放入高速緩存中 99
第6章 虛擬主機配置 100
6.1 基於名字的虛擬主機 101
6.2 基於IP的虛擬主機 102
6.3 動態虛擬主機 104
6.3.1 使用vhost_alias_module模塊建立動態虛擬主機 104
6.3.2 使用rewrite_module模塊建立大量的虛擬主機 106
6.4 常見問題解答(FAQ) 107
6.4.1 使用IPv6的地址配置虛擬主機 107
6.4.2 取消默認主機 107
6.4.3 使用ServerAlias指令定義的網站彆名無法訪問 107
6.4.4 如何支持古老的瀏覽器 107
6.4.5 為虛擬主機使用日誌 108
6.4.6 閤並虛擬主機日誌 108
6.4.7 在多個地址上顯示同樣的內容 109
6.4.8 讓虛擬主機支持SSL 109
6.4.9 使用虛擬主機的建議 110
第7章 CGI、FastCGI、SSI 111
7.1 CGI 111
7.1.1 mod_cgi模塊 111
7.1.2 mod_actions模塊 113
7.1.3 CGI環境變量 114
7.1.4 修改CGI、SSI環境變量 115
7.1.5 mod_cgid模塊 116
7.2 FastCGI 117
7.2.1 安裝mod_fcgid 118
7.2.2 配置mod_fcgid 119
7.2.3 mod_fcgid模塊指令 122
7.3 SSI 123
7.3.1 啓用SSI支持 123
7.3.2 SSI標記符 124
7.3.3 流控製 128
7.3.4 其他SSI指令 129
7.4 常見問題解答(FAQ) 129
7.4.1 很多人使用Perl來編寫CGI腳本,我是否也需要使用Perl 129
7.4.2 使用fixconf.sed替換指令時遇到錯誤 129
7.4.3 為什麼Perl腳本無法執行 130
7.4.4 安裝瞭Perl的FCGI模塊,但腳本還是無法運行 130
7.4.5 為什麼Apache服務器沒有為SSI頁麵發送最後的修改日期 131
7.4.6 讓Apache對特定的HTML類型文件進行SSI解析 131
7.4.7 Apache所帶的SSI功能太少瞭,如何得到更多功能的SSI 131
7.4.8 不在由ScriptAlias所定義的目錄下使用CGI腳本 131
7.4.9 如何在Windows係統中使用CGI 132
7.4.10 為特定的文件調用CGI處理器 132
第8章 彆名和重定嚮 133
8.1 mod_alias模塊 133
8.1.1 彆名的定義 133
8.1.2 重定嚮的定義 135
8.2 mod_rewrite模塊 137
8.2.1 工作流程 137
8.2.2 規則集 138
8.2.3 重寫指令 139
8.3 常見問題解答(FAQ) 148
8.3.1 如何提高mod_rewrite模塊的工作效率 148
8.3.2 如何完全禁止重寫日誌 148
8.3.3 目錄級改寫中的查詢字符串 148
8.3.4 讓用戶首先訪問某一目錄 148
8.3.5 規範化URL 148
8.3.6 將多個URL重定嚮到一個位置 149
8.3.7 將多個CGI目錄重定嚮到一個CGI目錄中 149
8.3.8 無視URL中所有的大小寫區分 149
8.3.9 將部分地址的URL重定嚮到SSL服務器上 149
第9章 代理服務器與緩存 150
9.1 代理服務器 150
9.1.1 正嚮代理 151
9.1.2 逆嚮代理 151
9.1.3 Apache的代理模塊 152
9.1.4 Apache的其他代理模塊 157
9.2 緩存模塊 157
9.2.1 mod_cache模塊 157
9.2.2 mod_mem_cache模塊 159
9.2.3 mod_disk_cache模塊 160
9.2.4 維護磁盤緩存區 162
9.2.5 mod_file_cache的文件緩存支持 163
9.3 常見問題解答(FAQ) 164
9.3.1 為什麼需要使用緩存模塊 164
9.3.2 緩存多個文件 164
9.3.3 緩存調用瞭CGI程序的頁麵,但還是很慢 165
9.3.4 使用其他服務器作為圖片服務器 165
9.3.5 禁止代理服務器轉發電子郵件 165
9.3.6 在代理服務器中禁止所指定的網站 166
9.3.7 htcacheclean的使用 166
第10章 數據庫連接管理 167
10.1 mod_dbd模塊 167
10.2 mod_ldap模塊 171
10.3 常見問題解答(FAQ) 174
10.3.1 在啓動Apache時遇到DBD:Can't load driver file apr_dbd_ pgsql.so錯誤 174
10.3.2 齣現DBD: Can't connect to pgsql,FATAL:sorry,too many clients already/n錯誤 174
10.3.3 對LDAP緩衝區的監控 174
第11章 Apache日誌控製 175
11.1 錯誤日誌 175
11.1.1 LogLevel指令:指定記錄錯誤級彆 175
11.1.2 ErrorLog指令:定義錯誤文件的位置 177
11.2 訪問日誌 178
11.2.1 普通日誌 (公共日誌 Common Log Format、CLF) 178
11.2.2 擴充普通日誌(復閤日誌 Extended Log File Format、ECLF) 179
11.2.3 LogFormat指令 179
11.2.4 CustomLog 指令 181
11.2.5 TransferLog指令 182
11.2.6 BufferedLogs指令 183
11.3 日誌的循環 183
11.3.1 手動循環 183
11.3.2 自動循環 184
11.4 使用syslog來控製、存儲日誌 184
11.5 跟蹤用戶會話 185
11.6 日誌分析軟件 188
11.6.1 Webalizer 188
11.6.2 Awstats 190
11.6.3 Windows服務器安全分析係統 192
11.7 常見問題解答(FAQ) 194
11.7.1 一些常見的格式串 194
11.7.2 條件記錄日誌 194
11.7.3 多個日誌文件 195
11.7.4 在虛擬主機中進行日誌記錄 195
11.7.5 不記錄本地主機上的圖片請求 195
11.7.6 按時間記錄日誌 196
11.7.7 在日誌中記錄Cookie 196
11.7.8 在日誌中記錄引用頁麵 196
11.7.9 在日誌中記錄客戶瀏覽器類型 196
11.7.10 在負載均衡時Apache無法保持會話 197
第12章 性能調整及服務器安全 198
12.1 性能調整 198
12.1.1 多路處理模塊(MPM) 198
12.1.2 Apache所提供的性能調整指令 202
12.1.3 使用XCache加速PHP 203
12.1.4 AB測試服務器性能 205
12.1.5 網站架構演變 208
12.2 服務器安全 208
12.2.1 Apache所提供的安全控製 210
12.2.2 常用的檢測工具 211
12.3 常見問題解答(FAQ) 217
12.3.1 Apache加速器(khttpd) 217
12.3.2 Apache服務器安全檢查 217
12.3.3 其他的PHP加速程序 218
12.3.4 禁用DNS查詢 218
12.3.5 隻在指定的目錄中使用.htaccess文件 218
12.3.6 停用網頁內容協商 218
12.3.7 將目錄列錶存入緩存區中 219
12.3.8 使用DNS進行負載均衡 219
12.3.9 計算單個綫程內存消耗量來設置綫程數量 219
第13章 身份認證 220
13.1 mod_authz_host模塊 221
13.2 認證類型模塊 223
13.2.1 mod_auth_basic模塊 223
13.2.2 mod_auth_digest模塊 224
13.3 認證支持模塊 225
13.3.1 mod_authn_alias模塊 225
13.3.2 mod_authn_anon模塊 226
13.3.3 mod_authn_dbd模塊 228
13.3.4 mod_authn_dbm模塊 229
13.3.5 mod_authn_default模塊 229
13.3.6 mod_authn_file模塊 229
13.4 授權支持模塊 230
13.4.1 mod_authz_dbm模塊 230
13.4.2 mod_authz_groupfile模塊 231
13.4.3 mod_authz_owner模塊 232
13.4.4 mod_authz_user模塊 233
13.4.5 mod_authz_default模塊 233
13.5 mod_authnz_ldap模塊 233
13.5.1 使用mod_authnz_ldap模塊來進行認證 234
13.5.2 使用mod_authnz_ldap模塊來進行授權 236
13.6 常見問題解答(FAQ) 238
13.6.1 使用mod_authn_file模塊禁止用戶控製時服務器反應速度很慢 238
13.6.2 使用係統賬號進行驗證 238
13.6.3 Microsoft Internet Explorer 6無法使用摘要認證 239
13.6.4 獲得通過驗證的用戶名 239
13.6.5 針對特定用戶源的用戶進行身份認證 239
13.6.6 建立基本認證使用的密碼文件 240
13.6.7 建立摘要認證的密碼文件 240
13.6.8 建立數據庫格式的密碼文件 241
13.6.9 允許或禁止某一目錄的訪問 242
13.6.10 根據用戶身份限製訪問的方法 242
第14章 SSL(安全套接層協議) 243
14.1 SSL的實現方式 243
14.1.1 安裝mod_ssl 244
14.1.2 簽發證書 244
14.1.3 配置Apache啓用SSL功能 255
14.1.4 配置Apache使用客戶證書進行認證 259
14.1.5 mos_ssl指令說明 259
14.2 常見問題解答(FAQ) 263
14.2.1 mod_ssl支持哪些SSL加密算法 263
14.2.2 OpenSSL支持哪些加密算法 263
14.2.3 使用OpenSSL源代碼安裝OpenSSL 264
14.2.4 使用二進製方式安裝OpenSSL 265
14.2.5 OpenSSL命令的常見用法 265
14.2.6 如何查看更多的關於服務器上的SSL信息 266
第15章 元信息與內容協商 267
15.1 元信息 267
15.1.1 MIME類型(內容類型) 268
15.1.2 MIME編碼方式 271
15.1.3 MIME語言 271
15.1.4 MIME字符集 272
15.2 內容協商 273
15.2.1 使用類型映射(type-map)進行內容協商 275
15.2.2 使用MultiViews查詢進行內容協商 277
15.2.3 瀏覽器協商緩存 277
15.3 常見問題解答(FAQ) 278
15.3.1 如何嚮客戶端瀏覽傳輸默認的語言文件 278
15.3.2 如何指定一個新的mime.types文件位置 278
15.3.3 在使用語言協商時總是無法獲得正確的文件 278
15.3.4 類型映射文件說明 279
附錄A Apache編譯參數翻譯 281
附錄B Apache模塊及模塊配置指令列錶 287
附錄C HTTP響應代碼 305
· · · · · · (
收起)