APACHE安裝筆記
2024-08-27 18:23:38
供稿:網友
從簡化安裝==>性能調優==>方便維護的角度,討論WEB服務的規劃==>HTTPD安裝/應用模塊配置==>升級/維護等過程。
讓APACHE的升級和PHP RESIN等應用模塊的升級完全互不影響。
摘要:
WEB應用容量規劃:根據硬件配置和WEB應用的特點進行WEB服務的規劃及一些簡單的估算公式;
APACHE安裝過程:apache的通用的簡化安裝選項,方便以后的應用的模塊化配置;
修改 HARD_SERVER_LIMIT:
vi /path/to/apache_src/src/include/httpd.h
#define HARD_SERVER_LIMIT 2560 <===將原來的 HARD_SERVER_LIMIT 256 后面加個“0”
apache編譯:
/path/to/apache_src/configure --prefix=/another_driver/apache --enable-shared=max --enable-module=most
可選應用模塊/工具的安裝:php resin mod_gzip mod_expire及各個模塊之間的配合;
PHP安裝:
/path/to/php_src/configure --with-apxs=/path/to/apache/bin/apxs --enable-track-vars --with-other-modules-you-need
mod_resin安裝:
/path/to/resin/src/configure --with-apxs=/path/to/apache/bin/apxs
Mod_gzip安裝:
/path/to/apache/bin/apxs -i -a -c mod_gzip.c
工具:cronolog安裝:http://www.cronolog.org
升級/維護:看看通用和模塊化的安裝過程如何簡化了日常的升級/維護工作;
按照以上的方法:系統管理員和應用管理員的職責可以清楚的分開,互相獨立。
系統安裝:系統管理員的職責就是安裝系統=>安裝好一臺可以適應任何情況的APACHE,然后COLON,
應用安裝:由應用管理員負責具體應用所需要的模塊并設置HTTPD。
系統升級:系統管理員:升級系統/升級APACHE
應用升級:系統管理員:升級應用模塊
具體的說明:
WEB應用的容量規劃
APACHE主要是一個內存消耗型的服務應用,我個人總結的經驗公式:
apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
apache_max_process = apache_max_process_with_good_perfermance * 1.5
為什么會有一個apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低負載下系統可以使用更多的內存用于文件系統的緩存,從而進一步提高單個請求的響應速度。在高負載下,系統的單個請求響應速度會慢不少,而超過apache_max_process,系統會因為開始使用硬盤做虛擬內存交換空間而導致系統崩潰。此外,同樣的服務:2G內存的機器的apache_max_process一般只設置到1G內存的1.7倍,因為APACHE本身會因為管理更多的進程而產生性能下降。
例子1:
一個apache + mod_php的服務器:一個apache進程一般需要4M內存
因此在一個1G內存的機器上:apache_max_process_with_good_perfermance < (1g / 4m) * 2 = 500
apache_max_process = 500 * 1.5 = 750
所以規劃你的應用讓服務盡量跑在500個APACHE以下,并設置APACHE的軟上限在800個。
例子2:
一個apache + mod_resin的服務器: 一個apache進程一般需要2M內存
在一個2G內存的機器上: apache_max_process_with_good_perfermance < (2g / 2m ) * 2 = 2000
因此:apache_max_process = 2000 * 1.5 = 3000