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 将原来的HARD_SERVER_LIMIT 256 后面加个“0”
#endif
#endif
注解:
APACHE缺省的最大用户数是256个:这个配置对于服务器内存还是256M左右的时代是一个非常好的缺省设置,现在随便找一台PC内存配置都与其相当,服务器就更不要说了。所以256个进程的硬限制对于一台高于256M内存的机器来说是太浪费了,而且APACHE的软上限max_client是受限于HARD_SERVER_LIMIT的,因此如果WEB服务器内存大于256M,都应该调高APACHE的HARD_SERVER_LIMIT。根据个人的经验:2560已经可以满足大部分小于2G内存的服务器的容量规划了(APACHE的软上限的规划请看后面)。

2、APACHE的编译:通用的编译选项能使安装过程标准化
./configure –prefix=/another_driver/apache/ –enable-shared=max –enable-module=most

注解:
–prefix=/another_driver/apache/: 作为web服务器硬盘的工作量是不可忽略的,为了降低硬盘的损耗可以将服务数据和系统完全分开,这样能提高了数据的访问速度,更重要的,大大便于系统升级,备份和恢复。

–shared-module=max:使用动态加载会有5%的性能损耗,但是这样做更有助于模块升级、系统升级风险降低、安装过程标准化。

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

3、精简apache:apache的缺省配置文件一般比较大,可以去掉无聊的注释精简一下。

grep -v “#” httpd.conf.default >httpd.conf

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

#服务器名:缺省没有
自己搞定

#最大服务进程数:根据服务容量预测设置
MaxClients 256 => 800

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

不要修改:
以前也有些文章说要修改:
MinSpareServers 5 => 100
MaxSpareServers 10 => 200

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

特别修改:
在solaris或一些比较容易出现内存泄露的应用上:
MaxRequestsPerChild 0 =>3000

4、应用模块和工具的安装配置:由于使用模块动态加载的模式,所以可以方便的配置来把APACHE调整成你需要的,最好把不常用模块全部清除,无论是安全考虑还是效率考虑。

不需要的模块包括:
#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
#LoadModule autoindex_module libexec/mod_autoindex.so不需要将没有缺省index文件的目录下所有文件列出
#LoadModule cgi_module libexec/mod_cgi.so尽量不使用CGI:一直是APACHE安全问题最多的地方
#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

最好保留的有:
#LoadModule config_log_module libexec/mod_log_config.so用于定制log格式
#LoadModule mime_module libexec/mod_mime.so用于增加文件应用的关联
#LoadModule dir_module libexec/mod_dir.so用于缺省index文件:index.php等

可用可不用的鸡肋:
#需要在~/username/下调试php可以:LoadModule userdir_module libexec/mod_userdir.so
#需要将以前的URL进行转向或者需要使用CGI script-alias可以: LoadModule alias_module libexec/mod_alias.so

常用的模块:
最常用的应该是php和JAVA WEB应用的wrapper,从性能上讲:mod_gzip可以减少40%左右的流量,从而减少机器用于传输的负载,而mod_expires可以减少10%左右的重复请求,让重复的用户请求CACHE在本地,根本不向服务器发出请求。

建议将所有MODULE的配置都放到:
/path/to/php_src/configure –with-apxs=/path/to/apache/bin/apxs –with-other-modules-you-need

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值