Apache.docx
《Apache.docx》由会员分享,可在线阅读,更多相关《Apache.docx(32页珍藏版)》请在冰豆网上搜索。
Apache
WWW服务器配置
一,Apache的特性
1.Apache1.3的特性
可以运行在几乎所有的计算机平台
支持最新的HTTP1.1协议
支持虚拟主机
支持HTTP认证
集成了代理服务器
具有可定制的服务器日志
支持Socket层(SSL)
用户会话过程的跟踪能力
支持通用网关接口CGI
集成Perl脚本编程语言
支持服务器端包含命令(SSI)
支持FastCGI
支持PHP
支持JavaServlets
支持第三方软件开发疝提供的大量功有模块。
2.Apache2.0的新特性
新的多处理模块(Multi-ProcessingModule,MPM),使用此模块会在服务器处理多个请求时,控制Apache的运行方式。
Apache中的3种运行方式分别是:
1.预派生(profork)MPM:
此模块在功能上兼容于Apache1.3的运行模型。
这种运行方式首先启动一个父进程,然后创建并启动一定(可配置)数量的子进程监听客户的请求。
当监听到客户的服务请求后,子进程就响应此请求。
重要的是父进程始终监控子进程,当没有足够的空闲子进程为客户服务时,父进程就会创建并运行新的子进程准备为客户提供服务;如果存在过多的空闲子进程,父进程就会依次终止这些空闲的子进程,直到服务器回到最大空闲子进程(可配置)数量之下。
通过始终保持一定数量的空闲子进程来响应客户的请求,服务器可以避免在接收到客户请求时启动新的进程的开销。
2.工作者(Worker)MPM:
此模块是混合使用进程和线程的运行模型。
这种运行方式首先启动一个父进程,然后创建并启动一定(可配置)数量的子进程,每个子进程都创建并启动相同数量的线程,由线程监听客户请求,而子进程并不监听客户请求。
重要的是父进程始终监近控子进程,当没有足够的空闲线程为客户服务时,父进程就会创建并运行新的子进程,并在子进程中创建与先前子进程创建的相同数量的线程准备为客户提供服务。
这种运行方式是以牺牲可靠性和健壮性来换取可扩展性的。
3.独立子进程(Perchild)MPM:
这是一种运行于类UNIX系统上的运行模式,它也是混合使用进程和线程的运行模型。
这种运行模型与工作者MPM类似,只是每个子进程创建的线程数量可以不一致,即每个子进程都可以创建指定数量(可配置)的线程。
当服务器上负载增加后,Apache不会创建新的子进程,而是在当前的子进程之一上创建新的线程为客户提供服务。
这种运行方式具有最高的可扩展性,但却具有最低的可靠性。
3.Apache2.0的模块
Apache2.0仍旧采用模块的方式运行。
Apache由内核,标准模块,和第三方提供的模块3个层次组成。
增加一个模块则会使Apache增加一个功能支持。
二,安装启动Apache
1.安装:
RedHatLinux9自带了Apache2.0RPM安装包,位于第1张光盘中。
#rpm–ivhhttpd-2.0.40-21.i386.rpm
#rpm–ivhhttpd-manual-2.0.40-21.i386.rpm
2.启动Apache
#servicehttpdstart//httpd为Apache的守护进程。
#apachectlconfigtest//检测配置文件语法的正确性
#httpd-t//检测配置文件语法正确性
3.查看RedHatLinux9中Apache的相关信息。
#apachectl–V//查看编译配置参数
#apachectl–l//查看已经被编译的模块
Compiledinmodules:
core.c//ApacheHTTP服务器核心模块
prefork.c//表示当前Apache是以预派生(Profork)运行方式MPM运行的。
httpd_core.c //Http认证相关模块。
mod_so.c //表示当前的Apache支持DynamicSharedObjects(DSO),即用户可以不重新编译Apache的情况下使用APacheeXtenSion(apxs)编译Apache的第三方模块。
三,RedhatLinux9中的Apache的配置文件
//当服务器响应主机头(header)信息时显示Apache的版本各操作系统名称。
ServerTokensOS
//设置服务器的根目录
ServerRoot"/etc/httpd"
//设置运行Apache时使用的PidFile路径
PidFilerun/httpd.pid
//若300秒后没有收到或送同任何数所就切断该连接。
Timeout300
//保持连接的功能,即客户一次请求只能响应一个文件
//建议用户将此参数的值设置为On,即允许使用保持连接功能。
KeepAliveOff
//在使用保持连接功能时,设置客户一次请求连接能响应文件的最大上限。
MaxKeepAliveRequests100
//在使用保持连接功能时,两个相邻的连接的时间间隔超过15秒就切断连接。
KeepAliveTimeout15
//设置使用preforkMPM运行方式的参数,此运行方式是RedHat默认的方式
StartServers8//设置服务器启动时运行的进程数。
//Apache在运行时会根据负载的轻重自动调整空闲子进程数目
//若存在低于5个空闲进程,就创建一个新的子进程准备为客户提供服务
MinSpareServers5
//若存在高于20个空闲子进程,就创建逐一删除子进程来提高系统性能
MaxSpareServers20
//限制同一时间的连接数不能超过150
MaxClients1500
//限制每个了进程在结束处理请求之前能处理的连接衣求为1000
MaxRequestsPerChild1000
//设置以workerMPM运行方式的参数
StartServers2
MaxClients150
MinSpareThreads25
MaxSpareThreads75
ThreadsPerChild25
MaxRequestsPerChild0
//设置以perchildMPM运行方式的参数。
NumServers5
StartThreads5
MinSpareThreads5
MaxSpareThreads10
MaxThreadsPerChild20
MaxRequestsPerChild0
Listen80//设置服务器监听的端口
//将/etc/httpd/conf.d目录下的所有以conf结尾的配置文件包含进来
Includeconf.d/*.conf
//动态加态模块(DSO)
LoadModuleaccess_modulemodules/mod_access.so
LoadModuleauth_modulemodules/mod_auth.so
LoadModuleauth_anon_modulemodules/mod_auth_anon.so
LoadModuleauth_dbm_modulemodules/mod_auth_dbm.so
LoadModuleauth_digest_modulemodules/mod_auth_digest.so
LoadModuleinclude_modulemodules/mod_include.so
LoadModulelog_config_modulemodules/mod_log_config.so
LoadModuleenv_modulemodules/mod_env.so
LoadModulemime_magic_modulemodules/mod_mime_magic.so
LoadModulecern_meta_modulemodules/mod_cern_meta.so
LoadModuleexpires_modulemodules/mod_expires.so
LoadModuleheaders_modulemodules/mod_headers.so
LoadModuleusertrack_modulemodules/mod_usertrack.so
LoadModuleunique_id_modulemodules/mod_unique_id.so
LoadModulesetenvif_modulemodules/mod_setenvif.so
LoadModulemime_modulemodules/mod_mime.so
LoadModuledav_modulemodules/mod_dav.so
LoadModulestatus_modulemodules/mod_status.so
LoadModuleautoindex_modulemodules/mod_autoindex.so
LoadModuleasis_modulemodules/mod_asis.so
LoadModuleinfo_modulemodules/mod_info.so
LoadModuledav_fs_modulemodules/mod_dav_fs.so
LoadModulevhost_alias_modulemodules/mod_vhost_alias.so
LoadModulenegotiation_modulemodules/mod_negotiation.so
LoadModuledir_modulemodules/mod_dir.so
LoadModuleimap_modulemodules/mod_imap.so
LoadModuleactions_modulemodules/mod_actions.so
LoadModulespeling_modulemodules/mod_speling.so
LoadModuleuserdir_modulemodules/mod_userdir.so
LoadModulealias_modulemodules/mod_alias.so
LoadModulerewrite_modulemodules/mod_rewrite.so
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
//当使用内置模块prefork.c时动态加载cgi_module,支持CGI
LoadModulecgi_modulemodules/mod_cgi.so
//当使用内置模块worker.c时动态加载cgi_module,支持CGI
LoadModulecgid_modulemodules/mod_cgid.so
//设置运行Apache服务器的用户和组。
Userapache
Groupapache
//设置Apache服务器管理员的E-mail地址
ServerAdminroot@localhost
//关闭此选项,当Apache服务器需要指向本身的连接时使用
//ServerName:
port作为主机名,例如:
80
//若打开此选项将使用port80作为主机名。
UseCanonicalNameOff
//设置Apache服务器的根文档路径。
DocumentRoot"/var/www/html"
//设置Apache服务器根的访问权限
OptionsFollowSymLinks//允许符号链接跟随,访问不在本目录下的文件
AllowOverrideNone//禁止读取.htaccess配置文件的内容
//Indexes:
当找不到Directoryindex列表中指定的文件就生成当前目录的文件列表。
OptionsIndexesFollowSymLinks
//禁止读取.htaccess配置文件的内容
AllowOverrideNone
//指定先执行允许访问规则,再执行拒绝访问规则。
即先允许所有连接,然后不允许受限的//连接访问此目录
Orderallow,deny
Allowfromall//具体的访问规则
Options–Indexes//对Apache服务器根的访问不生成目录列表
ErrorDocument403/error/noindex.html//指定错误输出页面
UserDirdisable//不允许每用户的服务器配置,即每个本地用户都可以创建自己的WEB。
//站点的功能。
DirectoryIndexindex.htmlindex.html.var//指定主文档
AccessFileName.htaccess//指定保护目录配置文件的名称。
//拒绝访问以.ht开头的文件,即保护用户不能访问.htaccess文件的内容。
Orderallow,deny
Denyfromall
TypesConfig/etc/mime.types//指定负责MIME对应格式的配置文件的存放位置
DefaultTypetext/plain若罔闻//指定MIME文件类型为纯文本或HTML文件
//当mod_mime_magic.c模块被加载时,指定Magic信息码配置文件的存放位置
MIMEMagicFileconf/magic
HostnameLookupsOff//只记录连接Apache服务器的IP地址,而不记录主机名。
ErrorLoglogs/error_log//指定错误日志存放位置
LogLevelwarn//定义四种记录日志的格式。
LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combined
LogFormat"%h%l%u%t\"%r\"%>s%b"common
LogFormat"%{Referer}i->%U"referer
LogFormat"%{User-agent}i"agent
//指定访问日志的记录格式为combined(混合型),并指定访问日志存放位置
CustomLoglogs/access_logcombined
//设置Apache自己产生的页面中使用Apache服务器版本的签名
ServerSignatureOn
//设置内容协商目录的访问别名
Alias/icons/"/var/www/icons/"
//设置/var/www/icons目录的访问权限
//MultiViews使用内容协商功能决定被发送的网页的性质
OptionsIndexesMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
//设置Apache手册的访问别名
Alias/manual"/var/www/manual"
//设置/var/www/manual目录的访问权限
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
//指定DAV加锁数据库文件的存放位置
DAVLockDB/var/lib/dav/lockdb
//设置CGI目录的访问别名
ScriptAlias/cgi-bin/"/var/www/cgi-bin/"
//由于RedHat中不使用workerMPM运行方式,所以不用加载mod_cgid.c模块
Scriptsockrun/httpd.cgid
//设置CGI目录的访问权限
AllowOverrideNone
OptionsNone
Orderallow,deny
Allowfromall
//设置自动生成目录列表的显示方式
//FancyIndexing:
对每种类型的文件前加上一个小图标以示区别
//VersionSort:
对同一个软件的多个版本进行排序
//NameWidth=*:
文件名子段自动适应当前目录下最长文件名。
IndexOptionsFancyIndexingVersionSortNameWidth=*
//当使用indexOptionsFancyIndexing之后配置下面参数
//用于告知服务器在遇到不同文件类型或扩展名时采用MIME编码格式
//辨别文件类型并显示相应的图标
AddIconByEncoding(CMP,/icons/compressed.gif)x-compressx-gzip
AddIconByType(TXT,/icons/text.gif)text/*
AddIconByType(IMG,/icons/image2.gif)image/*
AddIconByType(SND,/icons/sound2.gif)audio/*
AddIconByType(VID,/icons/movie.gif)video/*
//当使用indexOptionsFancyIndexing之后配置下面参数
//用于告知服务器在遇到不同文件类型或扩展名时采用指定的格式
//并显示对应的图标
AddIconByEncoding(CMP,/icons/compressed.gif)x-compressx-gzip
AddIcon/icons/binary.gif.bin.exe
AddIcon/icons/binhex.gif.hqx
AddIcon/icons/tar.gif.tar
AddIcon/icons/world2.gif.wrl.wrl.gz.vrml.vrm.iv
AddIcon/icons/compressed.gif.Z.z.tgz.gz.zip
AddIcon/icons/a.gif.ps.ai.eps
AddIcon/icons/layout.gif.html.shtml.htm.pdf
AddIcon/icons/text.gif.txt
AddIcon/icons/c.gif.c
AddIcon/icons/p.gif.pl.py
AddIcon/icons/f.gif.for
AddIcon/icons/dvi.gif.dvi
AddIcon/icons/uuencoded.gif.uu
AddIcon/icons/script.gif.conf.sh.shar.csh.ksh.tcl
AddIcon/icons/tex.gif.tex
AddIcon/icons/bomb.gifcore
AddIcon/icons/back.gif..
AddIcon/icons/hand.right.gifREADME
AddIcon/icons/folder.gif^^DIRECTORY^^
AddIcon/icons/blank.gif^^BLANKICON^^
////当使用indexOptionsFancyIndexing之后,县无法识别文件类型时,显示此处定义图标
DefaultIcon/icons/unknown.gif
//当服务器自动列出目录列表时,在所生成的页面之后显示README.html的内容
ReadmeNameREADME.html
//当服务器自动列出目录列表时,在所生成的页面之后显示HEADER.html的内容。
HeaderNameHEADER.html
//设置在线浏览用户可以实时解压缩.z.gz.tgz类型的文件
AddEncodingx-compressZ
AddEncodingx-gzipgztgz
//设置网页内容的语言种类(浏览器要启动内容协商),对中文网页,此项无实际意义
AddLanguageda.dk
AddLanguagenl.nl
AddLanguageen.en
AddLanguageet.et
AddLanguagefr.fr
AddLanguagede.de
AddLanguagehe.he
AddLanguageel.el
AddLanguageit.it
AddLanguageja.ja
AddLanguagepl.po
AddLanguagekr.kr
AddLanguagept.pt
AddLanguagenn.nn
AddLanguageno.no
AddLanguagept-br.pt-br
AddLanguageltz.ltz
AddLanguageca.ca
AddLanguagees.es
AddLanguagesv.se
AddLanguagecz.cz
AddLanguageru.ru
AddLanguagetw.tw
AddLanguagezh-tw.tw
AddLanguagehr.hr
//当启用内容协商时,设置语言的先后顺序
LanguagePriorityendanletfrdeel