分享
 
 
 

APACHE安装笔记

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

作者: 车东

关键词: apache install php resin mod_gzip mod_expire webalizer cronolog

内容摘要:

从简化安装==性能调优==方便维护的角度,讨论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

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

升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;

按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相独立。

系统安装:系统管理员的职责就是安装系统=安装好一台DSO模式的APACHE,然后COLON,

应用安装:由应用管理员负责具体应用所需要的模块并设置HTTPD。

系统升级:系统管理员:升级系统/升级APACHE

应用升级:系统管理员:升级应用模块

具体的说明:

WEB应用的容量规划

APACHE主要是一个内存消耗型的服务应用,我个人总结的经验公式:

apache_max_process_with_good_perfermance

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

apache_max_process = 500 * 1.5 = 750

所以规划你的应用让服务尽量跑在500个APACHE以下,并设置APACHE的软上限在800个。

例子2:

一个apache + mod_resin的服务器: 一个apache进程一般需要2M内存

在一个2G内存的机器上: apache_max_process_with_good_perfermance

因此:apache_max_process = 2000 * 1.5 = 3000

以上估算都是按小文件服务估算的(一个请求一般大小在20k以下)。对于文件下载类型站点,可能还会受其他因素:比如带宽等的影响。

APACHE安装过程

服务器个数的硬上限HARD_SERVER_LIMIT的修改:

在FREEBSD和LINUX等UNIX操作系统下APACHE缺省的最大进程数是256个,需要修改apache_1.3.xx/src/include/httpd.h

#ifndef HARD_SERVER_LIMIT

#ifdef WIN32

#define HARD_SERVER_LIMIT 1024

#elif defined(NETWARE)

#define HARD_SERVER_LIMIT 2048

#else

#define HARD_SERVER_LIMIT 2560

#endif

#endif

解释:

APACHE缺省的最大用户数是256个:这个配置对于服务器内存还是256M左右的时代是一个非常好的缺省设置,但随着内存成本的急剧下降,现在大型站点的服务器内存配置一般比当时要高一个数量级不止。所以256个进程的硬限制对于一台1G内存的机器来说是太浪费了,而且APACHE的软上限max_client是受限于HARD_SERVER_LIMIT的,因此如果WEB服务器内存大于256M,都应该调高APACHE的HARD_SERVER_LIMIT。根据个人的经验:2560已经可以满足大部分小于2G内存的服务器的容量规划了(APACHE的软上限的规划请看后面)。

APACHE的编译:通用的编译选项能使安装过程标准化

./configure --prefix=/another_driver/apache/ --enable-shared=max --enable-module=most

解释:

--prefix=/another_driver/apache/: 一个系统使用寿命最低的一般就是硬盘,因此:将服务数据和系统完全分开,不仅能提高了数据的访问速度,更重要的,大大方便系统升级,备份和恢复。

--shared-module=max:使用动态加载方式会带来5%的性能下降,但和带来的好处相比更本不算什么:比如模块升级方便,系统升级风险降低,安装过程标准化

--enable-module=most:用most可以将一些不常用的module编译进来,比如后面讲到的mod_expire是就不在apache的缺省常用模块中

如果不想build so, 也可以这样:

./configure "--with-layout=Apache" "--prefix=/path/to/apache" "--disable-module=access" "--disable-module=actions" "--disable-module=autoindex" "--disable-module=env" "--disable-module=imap" "--disable-module=negotiation" "--disable-module=setenvif" "--disable-module=status" "--disable-module=userdir" "--disable-module=cgi" "--disable-module=include" "--disable-module=auth" "--disable-module=asis"

但结果会发现,这样编译对服务性能只能有微小的提高(5%左右),但却失去了以后系统升级和模块升级的灵活性,无论是模块还是APACHE本身升级都必须把所有SOURCE加在一起重新编译。

apache的缺省配置文件一般比较大:我们可以使用去掉注释的方法精简一下:然后再进入具体的培植过程能让你更快的定制出你所需要的。

grep -v "#" httpd.conf.default httpd.conf

需要修改的通用项目有以下几个:

#服务端口,缺省是8080,建议将整个APACHE配置调整好后再将服务端口改到正式服务的端口

Port 8080 = 80

#服务器名:缺省没有

ServerName name.example.com

#最大服务进程数:根据服务容量预测设置

MaxClients 256 = 800

#缺省启动服务后的服务进程数:等服务比较平稳后,按平均负载下的httpd个数设置就可以

StartServers 5 = 200

不要修改:

以前有建议说修改:

MinSpareServers 5 = 100

MaxSpareServers 10 = 200

但从我的经验看来:缺省值已经是非常优化的了,而且让APACHE自己调整进程个数还是比较好的。

特别修改:

在solaris或一些比较容易出现内存泄露的应用上:

MaxRequestsPerChild 0 =3000

应用模块和工具的安装配置:

由于使用模块动态加载的模式,所以可以方便的通过简单的配置调整来把APACHE定制成你需要的:最好把不常用模块全部清除(无论处于安全还是效率)。

比如:对于静态页面服务器:就什么模块都不加载,对于PHP应用就加上PHP模块,对于JAVA应用就把RESIN模块加载上。而且各种模块的插拔非常简单。

一般说来,可以不需要的模块包括:

#LoadModule env_module libexec/mod_env.so

#LoadModule negotiation_module libexec/mod_negotiation.so

#LoadModule status_module libexec/mod_status.so

#server side include已经过时了

#LoadModule includes_module libexec/mod_include.so

#不需要将没有缺省index文件的目录下所有文件列出

#LoadModule autoindex_module libexec/mod_autoindex.so

#尽量不使用CGI:一直是APACHE安全问题最多的地方

#LoadModule cgi_module libexec/mod_cgi.so

#LoadModule asis_module libexec/mod_asis.so

#LoadModule imap_module libexec/mod_imap.so

#LoadModule action_module libexec/mod_actions.so

#不使用安全校验可以大大提高访问速度

#LoadModule access_module libexec/mod_access.so

#LoadModule auth_module libexec/mod_auth.so

#LoadModule setenvif_module libexec/mod_setenvif.so

最好保留的有:

#用于定制log格式

LoadModule config_log_module libexec/mod_log_config.so

#用于增加文件应用的关联

LoadModule mime_module libexec/mod_mime.so

#用于缺

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有