热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

详细解析apache2.2(二)

来源: 作者: 时间:2008-06-19 Tag: 点击:
4.3 推荐配置
   下面以源码包方式安装的Apache为例来说明笔者建议的配置,如果你正在使用二进制包方式安装的Apache,文中的所有配置指令都可以在/etc/httpd/conf/httpd.conf主配置文件中使用。
本文所使用的示例主机中Apache安装在/usr/local/apache-2.2.6目录,请使用你实际的安装目录替换。
Apache配置文件可使用你熟悉的任何文本编辑器编辑,笔者使用vi 。
 4.3.1常用配置指令说明
下面介绍本文中将会用到的一些常用配置指令,全部指令及其详细用法请参见Apache2.2官方文档。
   另外需要注意,当在非UNIX平台上输入文件路径的时候,要特别注意即使平台本身是使用反斜杠(\)来分隔路径的,在这里也只能使用正斜杠(/)。通常在配置文件里只用正斜杠(/)来分隔路径总是不会错的。
   ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录。默认为安装目录,不需更改。
语法: ServerRoot directory-path
   如:   ServerRoot "/usr/local/apache-2.2.6"
注意,此指令中的路径最后不要加 / 。
   Listen:指定服务器监听的IP和端口。默认情况下Apache会在所有IP地址上监听。Listen是Apache2.0以后版本必须设置的指令,如果在配置文件中找不到这个指令,服务器将无法启动。
   语法:Listen [IP-address:]portnumber [protocol]
   Listen指令指定服务器在那个端口或地址和端口的组合上监听接入请求。如果只指定一个端口,服务器将在所有地址上监听该端口。如果指定了地址和端口的组合,服务器将在指定地址的指定端口上监听。可选的protocol参数在大多数情况下并不需要,若未指定该参数,则将为443端口使用默认的https 协议,为其它端口使用http协议。
使用多个Listen指令可以指定多个不同的监听端口和/或地址端口组合。
  默认为:Listen 80
如果让服务器接受80和8080端口上请求,可以这样设置:
Listen 80
Listen 8080
如果让服务器在两个确定的地址端口组合上接受请求,可以这样设置:
Listen 192.168.2.1:80
Listen 192.168.2.2:8080
如果使用IPV6地址,必须用方括号把IPV6地址括起来:
Listen [2001:db8::a00:20ff:fea7:ccea]:80
LoadModule:加载特定的DSO模块。Apache默认将已编译的DSO模块存放于4.1目录结构小节中所示的动态加载模块目录中。
语法:LoadModule module filename
如:LoadModule rewrite_module modules/mod_rewrite.so
如果filename使用相对路径,则路径是相对于ServerRoot所指示的相对路径。
Apache配置文件默认加载所有已编译的DSO模块,笔者建议只加载如下模块:authn_file、authn_default、 authz_host、authz_user、authz_default、auth_basic、dir、alias、filter、speling、 log_config、env、vhost_alias、setenvif、mime、negotiation、rewrite、deflate、 expires、headers、cache、file-cache、disk-cache、mem-cache。
User:设置实际提供服务的子进程的用户。为了使用这个指令,服务器必须以root身份启动和初始化。如果你以非root身份启动服务器,子进程将不能够切换至非特权用户,并继续以启动服务器的原始用户身份运行。如果确实以root用户启动了服务器,那么父进程将仍然以root身份运行。
语法: User Unix-userid
Unix-userid是下列值之一:
一个用户名,通过用户名引用用户
"#"号后面跟一个用户编号(UID),通过用户编号引用用户
用于运行子进程的用户必须是一个没有特权的用户,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户亦需没有执行那些不应当被外界执行的程序的权限。强烈建议专门为Apache子进程建立一个单独的用户和组。一些管理员使用nobody用户,但是这并不能总是符合要求,因为可能有其他程序也在使用这个用户。
例:User daemon
Group:设置提供服务的Apache子进程运行时的用户组。为了使用这个指令,Apache必须以root初始化启动,否则在切换用户组时会失败,并继续以初始化启动时的用户组运行。
语法:Group Unix-Group
Unix-group可以是下列之一:
用户组的名称,通过名称引用组
"#"号后跟一个组编号(GID) ,通过编号引用组。
例:Group daemon
ServerAdmin:设置在所有返回给客户端的错误信息中包含的管理员邮件地址。
语法:ServerAdmin email-address|URL
如果httpd不能将提供的参数识别为URL,它就会假定它是一个email-address ,并在超连接中用在mailto:后面。推荐使用一个Email地址,因为许多CGI脚本是这样认为的。如果你确实想使用URL,一定要保证指向一个你能够控制的服务器,否则用户将无法确保一定可以和你取得联系。
例:ServerAdminwebmaster@entage.net
ServerName:设置服务器用于辨识自己的主机名和端口号。
语法:ServerName [scheme://]fully-qualified-domain-name[:port]
可选的'scheme://'前缀仅在2.2.3以后的版本中可用,用于在代理之后或离线设备上也能正确的检测规范化的服务器URL。
当没有指定ServerName时,服务器会尝试对IP地址进行反向查询来推断主机名。如果在ServerName中没有指定端口号,服务器会使用接受请求的那个端口。
为了加强可靠性和可预测性,建议使用ServerName显式的指定一个主机名和端口号。
如果使用的是基于域名的虚拟主机,在<VirtualHost>段中的ServerName将是为了匹配这个虚拟主机,在"Host:"请求头中必须出现的主机名。
DocumentRoot:设置Web文档根目录。
语法:DocumentRoot directory-path
在没有使用类似Alias这样的指令的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。
如果directory-path不是绝对路径,则被假定为是相对于ServerRoot的路径。
指定DocumentRoot时不应包括最后的"/"。
<Directory>:<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。
语法:<Directory Directory-path> ... </Directory>
Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"?"匹配任何单个的字符,"*"匹配任何字符序列。也可以使用"[]"来确定字符范围。在"~" 字符之后也可以使用正则表达式。
如果有多个(非正则表达式)<Directory>配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用,并包含.htaccess文件中的指令。
正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。
<Directory>指令不可被嵌套使用,也不能出现在<Limit>或<LimitExcept>配置段中。
<Files>:提供基于文件名的访问控制,类似于<Directory>和<Location>指令。


相关文章:
apache jsp tomcat 虚拟主机 在加上pure-ftp
squid 优化(解释篇)
调整centos文件打开数
REDHAT AS安装10g错误
用SystemImager克隆系统(一)
openssh 5.1版使用chroot sftp帐号技术
HPUX从入门到提高之三
postfix+vm-pop3+openmail 构造邮件服务器
SecureCRT设置
双机备份方案(resin集群+冷备)
开启rsh服务
Solaris9允许root用户登录ssh
Solairs如何上网?
实战PXE启动安装Redhat AS 5 Linux
RHCT Lab1: Network Installation
RHCE Lab1: Kickstart
RHCE Lab1.1: Auto Installation
apache版本号显示的问题
修改tomcat端口号
RS/6000小型机故障的基本定位方法
Linux下的权限管理-ACL
CactiEZv9监控CentOS5.0
Red Hat Enterprise Linux 5.2 简明安装手册
StorNext 简单安装说明
FreeBSD7 Apache2.2 PHP5 PostgreSQL8.3 Ports安
关于nagios监控系统添加主机和服务脚本
C和C++语言学习总结
apache优化
CentOS+Nginx+PHP+Mysql(1)
Apache服务器限制并发连接和下载速度