|
第二章Apache
2.1简介
Apache是世界排名第一的Web服务器,根据著名的Web服务器调查公司Netcraft的调查,世界上百分之五十以上的Web服务器都在使用Apache。
纵观Apache,它为我们的网络管理员提供了丰富多彩的功能,包括目录索引、目录别名、内容协商、可配置的HTTP错误报告、CGI程序的SetUID执行、子进程资源管理、服务器端图象映射、重写URL、URL拼写检查以及联机手册man等。也就是说,如果您在LinuxServer上成功安装配置了Apache之后,您的计算机也将随着Apache的生效而摇身一变,成为一台名副其实的WebServer,这种变化的确是激动人心的。伴随着自由软件发展的强大动力,我们有理由相信Apache的未来是一片光明的。
在Internet时代,外部主页的发布已经成为树立公司形象的一个重要手段,而内部主页也成为公司管理的主要方式。但是,要想实现这些功能,首先应该把我们的LinuxServer配置成为一台强大的WebServer。时至今日,全球应用最广泛的Web服务器软件就是Apache,本章将详细介绍如何配置Apache服务器。希望各位同仁能够通过阅读本片文章达到理论实践双丰收的目的,在很短的时间里迅速成为一名出色的网络管理员。
2.2所需系统资源
2.2.1配置文件:
文件来源
/etc/httpd/conf/httpd.conf apache-1.3.12-2.i386.rpm
/etc/httpd/conf/access.confapache-1.3.12-2.i386.rpm
/etc/httpd/conf/srm.confapache-1.3.12-2.i386.rpm
2.2.2相关工具:
文件来源
/etc/rc.d/init.d/httpd apache-1.3.12-2.i386.rpm
2.3配置方案
与Apache配置相关的文件共有3个:
/etc/httpd/conf/httpd.conf主配置文件
作用:定义HTTP协议的设置值和针对该服务器的操作,还包括定义三个文件的目录
实例:
ServerTypestandalone
#定义WebServer的启动方式为standalone,以增强其对大量访问的及时响应性
ServerRoot"/etc/httpd"
#指定包含httpd服务器文件的目录
LockFile/var/lock/httpd.lock
PidFile/var/run/httpd.pid
ScoreBoardFile/var/run/httpd.scoreboard
Timeout300
#响应超时量,单位为秒
KeepAliveOn
#允许用户建立永久连接
MaxKeepAliveRequests100
KeepAliveTimeout15
MinSpareServers5
#要保留的空闲服务器进程的最小值
MaxSpareServers20
#要保留的空闲服务器进程的最大值
StartServers8
#系统启动时的守护进程数
MaxClients150
#所能提供服务的最大客户端编号,大于它的部分被放入请求队列之中
MaxRequestsPerChild100
LoadModulevhost_alias_modulemodules/mod_vhost_alias.so
LoadModuleenv_modulemodules/mod_env.so
LoadModuleconfig_log_modulemodules/mod_log_config.so
LoadModuleagent_log_modulemodules/mod_log_agent.so
LoadModulereferer_log_modulemodules/mod_log_referer.so
LoadModulemime_modulemodules/mod_mime.so
LoadModulenegotiation_modulemodules/mod_negotiation.so
LoadModulestatus_modulemodules/mod_status.so
LoadModuleinfo_modulemodules/mod_info.so
LoadModuleincludes_modulemodules/mod_include.so
LoadModuleautoindex_modulemodules/mod_autoindex.so
LoadModuledir_modulemodules/mod_dir.so
LoadModulecgi_modulemodules/mod_cgi.so
LoadModuleasis_modulemodules/mod_asis.so
LoadModuleimap_modulemodules/mod_imap.so
LoadModuleaction_modulemodules/mod_actions.so
LoadModuleuserdir_modulemodules/mod_userdir.so
LoadModulealias_modulemodules/mod_alias.so
LoadModulerewrite_modulemodules/mod_rewrite.so
LoadModuleaccess_modulemodules/mod_access.so
LoadModuleauth_modulemodules/mod_auth.so
LoadModuleanon_auth_modulemodules/mod_auth_anon.so
LoadModuledb_auth_modulemodules/mod_auth_db.so
LoadModuledigest_modulemodules/mod_digest.so
LoadModuleproxy_modulemodules/libproxy.so
LoadModuleexpires_modulemodules/mod_expires.so
LoadModuleheaders_modulemodules/mod_headers.so
LoadModuleusertrack_modulemodules/mod_usertrack.so
LoadModulesetenvif_modulemodules/mod_setenvif.so
LoadModuleperl_modulemodules/libperl.so
LoadModulephp3_modulemodules/libphp3.so
ClearmoduleList
AddModulemod_vhost_alias.c
AddModulemod_env.c
AddModulemod_log_config.c
AddModulemod_log_agent.c
AddModulemod_log_referer.c
AddModulemod_mime.c
AddModulemod_negotiation.c
AddModulemod_status.c
AddModulemod_info.c
AddModulemod_include.c
AddModulemod_autoindex.c
AddModulemod_dir.c
AddModulemod_cgi.c
AddModulemod_asis.c
AddModulemod_imap.c
AddModulemod_actions.c
AddModulemod_userdir.c
AddModulemod_alias.c
AddModulemod_rewrite.c
AddModulemod_access.c
AddModulemod_auth.c
AddModulemod_auth_anon.c
AddModulemod_auth_db.c
AddModulemod_digest.c
AddModulemod_proxy.c
AddModulemod_expires.c
AddModulemod_headers.c
AddModulemod_usertrack.c
AddModulemod_so.c
AddModulemod_setenvif.c
AddModulemod_perl.c
AddModulemod_php3.c
Port80
#定义服务器所使用的TCP的端口号
Usernobody
Groupnobody
#以上两行是分配给httpd的新用户的文件权限,出于安全的考虑把它们的权限设置成为最低。
ServerAdminroot@localhost
#设置Web管理员的邮件地址
ServerNamethj
#定义客户端从服务器读取数据时返回给客户端的主机名,其缺省值是localhost
DocumentRoot"/home/httpd/html"
#设置所有Apache所提供的文档的根目录,比如说,用户对www.mycompany.com/index.html的访问请求,Apache对它的响应就是/home/httpd/html/index.html
UserDirpublic_html
DirectoryIndexindex.htmlindex.htmindex.shtmlindex.cgi
#设置多种成功访问主页的方式,为的是提高系统的容错性
AccessFileName.htaccess
UseCanonicalNameOn
TypesConfig/etc/mime.types
DefaultTypetext/plain
HostnameLookupsOff
ErrorLog/var/log/httpd/error_log
LogLevelwarn
#定义那些错误类型被记录到错误日志中
LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combined
#所有的LogFormat都用来定义日志中的条目
LogFormat"%h%l%u%t\"%r\"%>s%b"common
LogFormat"%{Referer}i->%U"referer
LogFormat"%{User-agent}i"agent
CustomLog/va |
|