內容介紹
《Apache Cookbook中文版(第2版)》為讀者提供了最可能遇到的一些問題的解決辦法,這些辦法已經針對新版的Apache伺服器做了更新。《Apache Cookbook中文版(第2版)》的作者來自Apache軟體基金會,針對2 0版和2.2版的Apache伺服器,作者對初版書做了徹底的修正,《Apache Cookbook中文版(第2版)》囊括的解決辦法從簡單任務如在紅帽Linux或視窗作業系統上安裝Apache伺服器,到更複雜的任務如配置一個基於名稱的虛擬主機或保護並管理你的代理伺服器。無論是初學者還是有經驗的用戶,都可以從《Apache Cookbook中文版(第2版)》獲益。對於書里的每一個問題,讀者都將找到一個切實可行的解決辦法,有些解決辦法會包含一段可以馬上使用的簡短、針對性的代碼,不但如此,讀者還將知道這段代碼如何以及為什麼會正確工作,這么一來,讀者就可以做出調整來解決類似的問題。
作品目錄
前言第1章 安裝
1.1 使用紅帽Linux的軟體包安裝Apache伺服器
1.2 使用Debian的軟體包安裝Apache伺服器
1.3 在Windows環境下安裝Apache伺服器
1.4 下載Apache伺服器的原始碼
1.5 使用原始碼編譯Apache伺服器
1.6 使用ApacheToolbox進行安裝
1.7 啟動、停止、重啟Apache伺服器
1.8 卸載Apache伺服器
1.9 選擇合適的Apache伺服器版本
1.10 使用config.nice檔案進行升級
1.11 在系統啟動時自動運行Apache伺服器
1.12 一些有用的configure命令參數
1.13 尋找Apache的檔案
第2章 增加常用模組
2.1 安裝一般的第三方模組
2.2 在類Unix系統下安裝mod_dav
2.3 在Windows環境下安裝mod_dav
2.4 在類Unix系統下安裝mod_perl
2.5 在類Unix系統下安裝mod_php
2.6 在Window環境下安裝mod_php
2.7 為Apache伺服器安裝mod_ssl
2.8 在modules.apache.org上尋找Apache module
2.9 安裝mod_security
2.10 為什麼這個Module不工作呢
第3章 日誌
3.1 在日誌內容中取得更詳細的信息
3.2 獲得更詳細的錯誤信息
3.3 記錄網頁的POST內容
3.4 記錄通過代理伺服器請求網頁的客戶端IP位址
3.5 記錄客戶端的MAC地址
3.6 記錄Cookie
3.7 不記錄來自本機網頁的網頁請求
3.8 在特定的時刻更新日誌
3.9 在每月的第一天更新日誌檔案
3.10 記錄主機名稱而非IP位址
3.11 替每個虛擬主機維護各自的日誌
3.12 記錄經過代理伺服器的請求
3.13 將虛擬主機的錯誤記錄至多個檔案
3.14 記錄伺服器的IP位址
3.15 記錄引用網頁
3.16 記錄瀏覽器軟體的名稱
3.17 記錄請求標頭中的任意欄位
3.18 記錄回響標頭中的任意欄位
3.19 將活動日誌記錄到MySQL資料庫
3.20 將日誌記錄至syslog
3.21 記錄用戶的目錄
第4章 虛擬主機
4.1 設定一個基於域名的虛擬主機
4.2 指定一台以域名定址的主機為默認伺服器
4.3 建立以IP定址的虛擬主機
4.4 建立以IP定址的默認虛擬主機
4.5 混用以IP定址以及以域名定址的虛擬主機
4.6 以mod_vhost_alias建立大量的虛擬主機
4.7 以Rewrite規則建立大量的虛擬主機
4.8 替每個虛擬主機建立日誌記錄
4.9 分割日誌檔案
4.10 以連線埠定址的虛擬主機
4.11 在多個地址上顯示相同的網頁內容
4.12 在資料庫里定義虛擬主機
第5章 別名、重定向及重寫
5.1 將URL對應到一個目錄
5.2 給現有的網頁內容創建新的URL
5.3 讓用戶有他們自己的URL
5.4 以單一指令建立數個URL別名
5.5 映射數個URL到相同的CGI目錄
5.6 替每位用戶創建CGI目錄
5.7 重定向到其他位置
5.8 將多個URL重定向到同一位置
5.9 允許不區分大小寫的URL
5.10 在網頁上高亮顯示PHP原始碼, 而不需要建立符號連結
5.11 替換請求URL中的文字
5.12 將路徑信息重寫至CGI參數
5.13 拒絕訪問未被引用的請求
5.14 重定向未引用的請求到一個說明頁面
5.15 依據查詢字元串來重寫
5.16 將伺服器的全部或部分重定向至SSL
5.17 將目錄轉換成主機名稱
5.18 將所有的請求重定向至單一主機
5.19 將檔案名稱稱轉換成參數
5.20 URL路徑和查詢字元串的重寫
5.21 重寫一個主機名稱為一個目錄
5.22 把URL的一部分作為查詢參數傳入
5.23 使用AliasMatch、ScriptAliasMatch, 以及RedirectMatch指令
第6章 安全防護
6.1 使用系統賬號信息在Web上進行身份驗證
6.2 設定一次性的密碼
6.3 使密碼過期
6.4 限制上傳檔案的大小
6.5 禁止在網站外使用圖像
6.6 同時要求弱驗證與強驗證
6.7 管理.htpasswd檔案
6.8 給摘要驗證製作密碼檔案
6.9 在子目錄中放寬安全限制
6.10 選擇性地提升安全限制
6.11 使用檔案所有權來授權
6.12 將用戶的證書存入MySQL資料庫
6.13 得到通過驗證的用戶名稱
6.14 獲取驗證用戶的密碼
6.15 防止暴力式的密碼攻擊
6.16 摘要與基本驗證的比較
6.17 訪問內含在URL中的證書
6.18 安全的WebDAV
6.19 啟用WebDAV, 但禁止Web用戶寫入檔案
6.20 禁止通過代理伺服器訪問特定的URL
6.21 以封裝程式保護檔案
6.22 保護伺服器檔案免於惡意腳本的攻擊
6.23 設定正確的檔案使用許可權
6.24 運行最基本的模組
6.25 禁止訪問網站根目錄外的檔案
6.26 根據用戶使用不同的限制方法
6.27 禁止部分請求
6.28 使用mod_evasive防止DOS(拒絕服務)攻擊
6.29 使用mod_security隔離(Chroot)Apache伺服器
6.30 移植到Apache 2.2版的許可權驗證
6.31 使用mod_security阻擋蠕蟲攻擊
6.32 使用唯讀和寫的混合許可權訪問一個Subversion Repository
6.33 使禁止訪問的URL重定向到一個固定的地址
第7章 SSL
7.1 安裝SSL
7.2 在Windows環境下安裝SSL
7.3 產生一個自簽署的SSL證書
7.4 產生一個被信任的CA
7.5 讓網站的一部分由SSL提供服務
7.6 使用客戶端證書來驗證
7.7 SSL虛擬主機
7.8 通配符證書
第8章 動態網頁內容
8.1 啟用CGI目錄
8.2 在不使用ScriptAlias的目錄中啟用CGI腳本
8.3 給一個CGI目錄指定默認的文檔
8.4 使用Windows擴展名來啟動CGI程式
8.5 使用擴展名來辨別CGI腳本
8.6 測試CGI是否被正確設定
8.7 讀取窗體參數
8.8 為特定的內容類型調用CGI程式
8.9 使SSI能順利工作
8.10 顯示上次修改的日期
8.11 包含一個標準的頁頭
8.12 包含一個CGI程式的輸出
8.13 使用suexec以不同的用戶身份來運行CGI程式
8.14 從CPAN安裝mod_perl處理器
8.15 編寫mod_perl處理器
8.16 啟用PHP腳本處理
8.17 驗證PHP安裝是否成功
8.18 在CGI程式的輸出中支持伺服器端包含指令
8.19 讓ScriptAlias目錄中的腳本程式的輸出支持伺服器端包含指令
8.20 讓所有的Perl腳本被mod_perl來執行
8.21 開啟Python腳本處理
第9章 錯誤處理
9.1 處理漏掉的Host欄位
9.2 改變CGI腳本的回響狀態
9.3 自定義報錯信息
9.4 提供多種語言的錯誤文檔
9.5 將非法URL重定向到其他網頁
9.6 讓Internet Explorer顯示你的報錯網頁
9.7 當發生錯誤狀況時, 得到通知
第10章 代理伺服器
10.1 保護你的代理伺服器
10.2 防止代理伺服器被作為開放式的郵件轉發工具
10.3 將請求傳遞給其他伺服器
10.4 阻斷對特定位置的代理請求
10.5 以其他伺服器作為mod_perl網頁內容的代理伺服器
10.6 配置一個啟用高速快取功能的代理伺服器
10.7 過濾代理的網頁內容
10.8 對代理伺服器要求進行身份驗證
10.9 使用mod_proxy_balancer進行負載均衡
10.10 虛擬主機的代理
10.11 拒絕代理FTP請求
第11章 性能
11.1 決定需要多少記憶體
11.2 使用ab對Apache進行基準測試
11.3 調節保持連線(KeepAlive)的設定
11.4 得到網站獲得快照
11.5 避免DNS查詢
11.6 最佳化符號連結
11.7 最小化.htaccess檔案對性能的影響
11.8 禁用網頁內容協商
11.9 最佳化進程的產生
11.10 調節執行緒的產生
11.11 將經常查看的檔案存入高速緩衝區
11.12 平均分配各伺服器間的負載
11.13 將目錄列表存入高速緩衝區
11.14 使用mod_perl加速Perl CGI程式的運行
11.15 快取動態內容
第12章 目錄列表
12.1 生成目錄內容列表
12.2 在目錄列表頁面上顯示一個標準的頁頭和頁腳
12.3 給目錄列表套用樣式表
12.4 在目錄列表中隱藏一些列表項
12.5 在一個目錄列表中檢索特定檔案
12.6 對目錄列表進行排序
12.7 允許客戶端指定排序順序
12.8 指定列表的顯示格式
12.9 允許客戶端指定格式
12.10 給檔案增加描述
12.11 自動產生文檔標題
12.12 改變列表圖示
12.13 把資料夾排在目錄列表的最前面
12.14 按照版本號進行排序
12.15 允許最終用戶指定使用版本排序
12.16 提供用戶完整的輸出控制
12.17 不允許最終用戶修改列表
12.18 控制特定的列
12.19 顯示禁止訪問的檔案
12.20 目錄列表中的別名
第13章 其他主題
13.1 適當地放置指令
13.2 重命名.htaccess檔案
13.3 產生目錄/資料夾列表
13.4 解決"結尾斜線"的問題
13.5 根據瀏覽器的功能設定Content-Type
13.6 處理漏掉的Host標頭欄位
13.7 替換默認檔案
13.8 設定默認的"收藏夾圖示(Favicon)"
13.9 允許使用ScriptAlias指令的目錄顯示列表
13.10 啟用.htaccess檔案
13.11 把IBM/Lotus的伺服器端包含指令轉換成Apache上的指令
附錄A 在Apache中使用正則表達式
A.1 哪些指令會用到正則表達式?
附錄B 疑難排解
B.1 疑難問題的排解方法
B.2 對配置進行調試
B.3 對腳本標頭的提前結束進行調試
B.4 Windows上的常見問題
B.5 修改編譯時的錯誤信息
B.6 讓Server-Side Include能夠工作
B.7 對產生"找不到檔案"錯誤的重寫進行調試
B.8 .htaccess檔案沒有作用
B.9 地址已在使用中
索引