Apache使用教程(安装与配置).doc_第1页
Apache使用教程(安装与配置).doc_第2页
Apache使用教程(安装与配置).doc_第3页
Apache使用教程(安装与配置).doc_第4页
Apache使用教程(安装与配置).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可以从简单的静态html服务开始,一个模块一个模块的学习使用。从单纯的HTML静态服务(core),到复杂的动态页面服务(core+php,core+resin,core+php+mod_gzip,core+resin+mod_expire)。本文主要从简化安装=性能调优=维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP,Resin等应用模块的独立升级,完全互不影响。1. WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公式; 2. Apache安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置;修改HARD_SERVER_LIMIT:vi/path/to/apache_src/src/include/httpd.h#defineHARD_SERVER_LIMIT2560=将原来的HARD_SERVER_LIMIT256后面加个“0”apache编译:./configure-prefix=/home/apache-enable-shared=max-enable-module=most 3. 可选应用模块/工具的安装:phpresinmod_gzipmod_expire及各个模块之间的配合;mod_php安装:./configure-with-apxs=/home/apache/bin/apxs-enable-track-vars-with-mysqlmod_resin安装:./configure-with-apxs=/home/apache/bin/apxsmod_gzip安装:修改Makefile中的apxs路径:然后makemakeinstall工具:日志轮循工具cronolog安装: 4. 升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相独立。系统安装:系统管理员的职责就是安装好一台DSO模式的Apache,然后COLON即可,应用安装:由应用管理员负责具体应用所需要的模块,比如PHPResin等,并设置httpd.conf中相关的配置。系统升级:系统管理员:升级操作系统/升级Apache应用升级:应用管理员:升级应用模块,PHPResin等。 WEB应用的容量规划Apache主要是一个内存消耗型的服务应用,我个人总结的经验公式:apache_max_process_with_good_perfermance(total_hardware_memory/apache_memory_per_process)*2apache_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=500apache_max_process500*1.5=750所以规划你的应用让服务尽量跑在500个进程以下以保持比较高的效率,并设置Apache的软上限在800个。例子2:一个apache+mod_resin的服务器:一个apache进程一般需要2M内存在一个2G内存的机器上:apache_max_process_with_good_perfermance(2g/2m)*2=2000apache_max_process2000*1.5=3000以上估算都是按小文件服务估算的(一个请求一般大小在20k以下)。对于文件下载类型站点,可能还会受其他因素:比如带宽等的影响。Apache安装过程服务器个数的硬上限HARD_SERVER_LIMIT的修改:在Apache的源代码中缺省的最大进程数是256个,需要修改apache_1.3.xx/src/include/httpd.h#ifndefHARD_SERVER_LIMIT#ifdefWIN32#defineHARD_SERVER_LIMIT1024#elifdefined(NETWARE)#defineHARD_SERVER_LIMIT2048#else#defineHARD_SERVER_LIMIT2560httpd.conf需要修改的通用项目有以下几个:#服务端口,缺省是8080,建议将整个Apache配置调整好后再将服务端口改到正式服务的端口Port8080=80#服务器名:缺省没有ServerN#最大服务进程数:根据服务容量预测设置MaxClients256=800#缺省启动服务后的服务进程数:等服务比较平稳后,按平均负载下的httpd个数设置就可以StartServers5=200不要修改:以前有建议说修改:MinSpareServers5=100MaxSpareServers10=200但从我的经验看来:缺省值已经是非常优化的了,而且让Apache自己调整子共享进程个数还是比较好的。特别修改:在solaris或一些比较容易出现内存泄露的应用上:MaxRequestsPerChild0=30002.应用模块和工具的安装配置:由于使用模块动态加载的模式,所以可以方便的通过简单的配置调整来把Apache定制成你需要的:最好把不常用模块全部清除(无论处于安全还是效率)。比如:对于静态页面服务器:就什么其他子模块都不加载,对于PHP应用就加上PHP模块,对于JAVA应用就把Resin模块加载上。而且各种模块的插拔非常简单,这样调试过程中就可以简单的通过注释掉不需要的模块,而不用重新编译。一般说来,可以不需要的模块包括:#LoadModuleenv_modulelibexec/mod_env.so#LoadModulenegotiation_modulelibexec/mod_negotiation.so#LoadModulestatus_modulelibexec/mod_status.so#serversideinclude已经过时了#LoadModuleincludes_modulelibexec/mod_include.so#不需要将没有缺省index文件的目录下所有文件列出#LoadModuleautoindex_modulelibexec/mod_autoindex.so#尽量不使用CGI:一直是Apache安全问题最多的地方#LoadModulecgi_modulelibexec/mod_cgi.so#LoadModuleasis_modulelibexec/mod_asis.so#LoadModuleimap_modulelibexec/mod_imap.so#LoadModuleaction_modulelibexec/mod_actions.so#不使用安全认证可以大大提高访问速度#LoadModuleaccess_modulelibexec/mod_access.so#LoadModuleauth_modulelibexec/mod_auth.so#LoadModulesetenvif_modulelibexec/mod_setenvif.so最好保留的有:#用于定制log格式LoadModuleconfig_log_modulelibexec/mod_log_config.so#用于增加文件应用的关联LoadModulemime_modulelibexec/mod_mime.so#用于缺省index文件:index.php等LoadModuledir_modulelibexec/mod_dir.so可用可不用的有:#比如:需要在/username/下调试php可以将LoadModuleuserdir_modulelibexec/mod_userdir.so#比如:需要将以前的URL进行转向或者需要使用CGIscript-aliasLoadModulealias_modulelibexec/mod_alias.so常用的模块:最常用的可能就是php和JAVA应用服务器的前端,此外,从性能上讲利用mod_gzip可以减少40%左右的流量,减少机器用于传输的负载,而mod_expires可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。建议将所有MODULE的配置都放到相应模块的配置内部:some_moduleconfigPHP的安装:/path/to/php_src/configure-with-apxs=/path/to/apache/bin/apxs-with-other-modules-you-need需要修改的配置:AddTypeapplication/x-httpd-php.php.php3.any_file_in_phpresin的安装设置:/path/to/resin/src/configure-with-apxs=/path/to/apache/bin/apxs具体的resin设置放在另外一个文件中:比如/home/resin/conf/resin.confCauchoConfigFile/path/to/apache/conf/resin.confmod_expires的安装配置:ExpiresActiveonExpiresByTypeimage/gifaccessplus1monthExpiresByTypetext/cssnowplus1monthExpiresDefaultnowplus1day注释:所有的.gif文件1个月以后过期所有的文件缺省1天以后过期mod_gzip的安装/tech/compress.html日志的轮循:cronolog的安装和设置cronolog可以非常整齐的将日志按天轮循存储缺省编译安装到/usr/local/bin/下,只需要将配置改成:CustomLog|/usr/local/sbin/cronolog/home/apache/logs/%w/access_logcombined日志将按天截断并存放在以星期为目录名的目录下:比如:log/1是周一,log/5是周五,log/0是周日用gzip压缩每天的日志:304*/usr/bin/gzip-f/home/apache/logs/date-dyesterday+%w/access_log日志的定期删除:305*/usr/bin/find/home/apache/logs/-nameaccess_log.gz-mtime+3|xargs-r/bin/rm-f升级维护:由于使用动态模块加载方式(DSO模式)安装Apache,Apache的HTTPD核心服务和应用模块以及应用模块之间都变的非常灵活,建议将所有独立模块的配置都放在CONFIGURATIONS.里,这样配置非常容易通过屏蔽某个模块来进行功能调整:比如:#AddModulemod_gzip.c就屏蔽了mod_gzip,而其他模块不首任何影响。安装和维护过程: 系统安装:系统管理员的职责就是安装系统和一个按照DSO模式安装的Apache,然后COLON。 应用安装:由应用管理员负责具体应用所需要的模块并设置HTTPD。 系统升级:系统管理员:升级系统/升级Apache 应用升级:应用管理员:升级应用模块:PHPCAUCHO等 系统备份/恢复:如果Apache不在缺省的系统盘上,只需要将Apache目录备份就可以了,遇到系统分区的硬件问题直接使用预先准备好的系统COLON,再直接将Apache所在物理盘恢复就行了。 系统管理员:Apache的最简化安装OS+Apache(httpdcoreonly)应用管理员:应用模块定制纯静态页面服务corePHP动态页面core+so+phpJAVA应用core+so+caucho+ssl应用例子:例子:Apache和PHP模块的独立升级。如果Apache是按照以下方式安装:./configure-prefix=/home/apache-enable-shared=max-enable-module=mostPHP是按照以下方式安装:./configure-with-apxs=/home/apache/bin/apxs-enable-track-vars-with-mysql以后单独升级Apache的时候,仍然是:./configure-prefix=/home/apache-enable-shared=max-enable-module=mostmakesu#/home/apache/bin/apachectlstop#makeinstall单独升级php时,仍然是:./configure-with-apxs=/home/apache/bin/apxs-enable-track-vars-with-mysqlmakesu#/home/apache/bin/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论