1、決定需要多少記憶體 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 在程序清單中找出Apache的執行個體,并決定運作Apache程序平均所需的記憶體容量然後将此數量與可同時服務的用戶端的最大數目相乘。 | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 折騰 一 陣 ,也沒能在linux下算出我的apache所需的記憶體數量。需要再接再 厲 。 | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
2、 | 以ab來測試 Apache的性能 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 運作ab程式如下: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| ab -n 1000 -c 10 http://xxxx/test.html | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 未在實際環 境中運作 測試 。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 模拟測試隻能一定程度上反映伺服器的性能。能夠獲得系統性能是否真的提升了,但不能反映真實的使用者的真實行為。 | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
3、調節保持連接配接的設定 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 啟用KeepAlive On指令。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 使用KeepAlive可在單 一 連 接 時進 行多個 請 求。也就是持 續連 接。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| MaxKeepAliveRequests指令在單一連接配接時間内可允許多少個保持連接配接的請求。當該 值 為0時,表示在單一連接配接時間允許不限數目的請求。 | | | | | |
| KeepAliveTimeout指定在沒有接受其他請求時,會持續開啟特定連接配接的時間。此指令的最佳設定完全視網站特性而定。在 KeepAlive 過期前,使用者 | | |
| 通路下一網頁時會在同一連接配接中獲得該檔案。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
4、取得網站活動的快照 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 想準确地知道伺服器正在做什 麼事。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 啟用server-status處理器來取得子程序在運作的快照。啟用 ExtendedStatus來取得更 詳細的資訊: | | | | | | | | | | | | | | | | | | | | | |
| <Location /server-status> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| SetHandler server-status | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| </Location> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| ExtendedStatus On | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 可在 URL http://servername/server-status上檢視 結果 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 啟用 mod_status 子產品所提供的 server-status 處理器可以提供伺服器活動快照。可獲得資訊:上次重新開機動時間、伺服器已運作多久、該時間段内已經服務 |
| 的資料量、子程序及其作用的清單。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 上述結果可能包含一些不想被其他使用者了解的資訊,故需要設定隻允許從xxx.xxx.xxx.xxx或其他設定的網絡來通路,拒絕未獲授權的網際網路使用者通路。 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 做到特定使用者通路,需要加入如下内容: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Order deny, allow | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Deny from all | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Allow from xxx.xxx.xxx.xxx | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 但需要加在何位置呢?猜想,這 裡隻 對 server-status起作用, 應 寫在 <Location /server-status> </Location>之 間 。 | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
5、避免DNS查 詢 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 避免必須以DNS來 查 詢用戶端位址的情況。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 将HostNameLookups 設定為 Off | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| HostNameLookups Off | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 确定所有Allowfrom 或 Deny from指令使用IP位址而非主機名稱。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 理由:當Allow from 與 Deny from指令進行以主機名稱為基準的通路控制時, Apache會采取另外的 預防措施以確定用戶端不會送出假的主機名稱。 | |
| 它會替用戶端的IP位址進行DNS 查 詢以獲得主機名稱,并與通路限制對比。為了确定DNS記錄不是假造的,它會 查 詢所獲得的主機名稱。 | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 問題:怎 樣 的 設 置會使allow 與 deny from使用IP位址而不是主機名呢?反之呢?需要 驗證 一下。 | | | | | | | | | | | | | | | | | |
| 問題:怎 樣設 置假的主機名呢? | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
6、最佳化符号連結 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 什麼 是符号 鍊 接?他又怎 麼 影響系 統 性能了? | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 書上說:為了啟用最嚴格的安全防護,如果很少(甚至從不)使用符号連結,請使用Options SymLiksIfOwnerMatch或Options -FollowSymLinks。 | | | |
| 為了有最佳的性能,請使用Options FollowSymLinks。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
7、降低.htaccess檔案對性能的影響 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 隻在必要的目錄中啟用AllowOverride,告訴Apache不要浪費時間在别的位置 查找 .htaccess檔案 | | | | | | | | | | | | | | | | | | | | | | |
| AllowOverride None | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 然後在<Directory>區塊啟用必要的 .htaccess檔案。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 因為Apache配置指令不僅應用到所設定目錄,也包含所有子目錄。是以必須檢 查父目 錄以及目前目錄中的.htaccess檔案。 | | | | | | | | | | | |
| 在.htaccess中出現的任何設定都可以出現在引用同一目錄的 <Directory>區 塊中。 | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 隻在必要的特定目錄中啟用。例如: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| /www/htdocs/user/leopold/的目錄中啟用 .htaccess檔案, 則應該隻讓此目錄使用 .htaccess | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| <Director /www/htdocs/users/leopold> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| AllowOverride All | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| </Directory> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 注意點:在.htaccess檔案中可使用的指令種 類會非常特殊,而且應該隻使用真正需要的指令。即應該使用必要的特定指令,而非 All參數。 | | | | | |
| 尤其盡可能避免使用AllowOverride的Options參數,因為它可以讓使用者重新啟動為了安全防護而停用的功能。 | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 問題:AllowOverride的Options參數是什 麼 ?怎 麼 他就“它可以 讓 用 戶 重新啟 動為 了安全防 護 而停用的功能?” | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
8、停用網頁内容協商 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 網頁内容協商會嚴重地降低性能。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 如果真的需要使用網頁内容協商,請使用type-map處理器而非Multiviews選項: | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Options -Multiviews | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| AddHandler type-map var | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 當使用MultivViews時, 每次送出 請求時, Apache都需要取得目 錄清單。所請求的資源會與目錄清單對比,以 檢視 該資源是否還有其他語言的版本。 | |
| 如果所請求的是index.html,則index.html有index.html.fr也會滿足該請求。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 通過将資訊放入.var檔案并改為type-map處理器,可以不城 朵取得目 錄清單,并大幅減少apache在決定傳送給使用者的正确版本時的必要工作量。 | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 例如:如果有index.html的英文、法文或其他文版本,可以編寫名為 index.html.var的var檔案,其中包含各 種版本的相 關資訊。檔案内容如下: | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| URI: index.html.en | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Content-language:en | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Content-type:text/html | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| URI:index.html.fr | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Contents-language:en | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Contents-type:text/html | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| 此檔案必須和不同版本的資源(即index.html.en、index.html.fr及index.html.he.iso8859-8)放在同一目錄中。 | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |