apache服务器全局配置之文件定位配置
文件定位相关指令:
CoreDumpDirectory
DocumentRoot
ErrorLog
LockFile
PidFile
ScoreBoardFile
ServerRoot
这些指令控制Apache正常工作所需的各种文件的定位。如果路径名不以斜线“/”开头,那么就认为该文件是相对于ServerRoot的
相对路径。
CoreDumpDirectory指令
语法:CoreDumpDirectory directory-path
这个指令用来控制Apache使用的内核转储目录,该转储目录默认位于“ServerRoot”下。因为这个目录通常对于运行服务器的用户是不可写的,内核转储一般也不会写入内容。如果你在调试中需要内核转储,那么你可以用这个指令来指定另外一个目录。
DocumentRoot指令
语法:DocumentRoot directory-path
这个指令用来设置httpd提供服务的目录。在没有使用类似
alias这样的指令的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。
例如:
DocumentRoot “/usr/local/httpd/htdocs”
那么在访问http://192.168.120.240/bbs/index.html时,实际上就是访问/usr/loca/httpd/htdocs/bbs/index.html。
如果directory-path不是
绝对路径,则就会被假定为相对于ServerRoot的路径。
例如:
ServerRoot “/usr/local/httpd/”
DocumentRoot “htdocs”
那么在访问http://192.168.120.240/bbs/index.html时,实际上还是会被定位到/usr/loca/httpd/htdocs/bbs/index.html。
ErrorLog指令
语法:ErrorLog file-path | syslog[:facility]
默认:ErrorLog “logs/error_log”
这个指令用来设置当服务器遇到错误时记录错误日志的文件。如果file-path不是以/开头的绝对路径,那么将会被认为是一个相对于ServerRoot的相对路径。
LockFile指令
语法:LockFile filename
这个指令设置当AcceptMutex指令的值是fcntl或flock的时候,Apache使用的锁文件的位置。一般保持默认值。改变默认值的主要原因是logs目录位于一个NFS文件系统上,因为锁文件必须位于本地磁盘上。主服务器进程的PID会自动添加到文件名后面。
注意:不要将该锁文件放在任何人都有写权限的目录中,因为别人可以通过建立一个与服务器企图建立的锁文件同名的文件,来阻止服务器启动。
PidFile指令
语法:PidFile filename
默认:PidFile “logs/httpd.pid”
这个指令用来设置服务器记录父进程(监控进程)PID的文件。
如果指定的不是绝对路径,那么将会被认为是一个相对于ServerRoot的相对路径。
ScoreBoardFile指令
语法:ScoreBoardFile file-path
这个指令用来设置存储子进程协调数据的文件。Apache使用记分板(scoreboard)在父进程和子进程之间进行通信。一些体系机构要求有一个文件来帮助通信。如果未指定这个文件,Apache会首先尝试在匿名共享内存中建立完整的记分板。如果失败,将继续尝试使用基于文件的共享存储器在磁盘上建立这个文件。若利用这个指令指定这个文件的位置,则Apache将总是在磁盘上建立这个文件。
将ScoreBoardFile放置在RAM DISK中对访问速度有很大帮助。但是要注意放置的位置以及权限。
ServerRoot指令
语法:ServerRoot directory-path
这个指令用来设置Apache服务器所在的目录。一般包含conf/、logs/等子目录。其他配置文件的相对路径一般都是基于此目录的。
例如:
ServerRoot “/usr/local/httpd/”
Apache服务器全局配置之资源限制配置
资源限制相关指令:
LimitRequestBody
LimitRequestFields
LimitRequestFieldsize
LimitRequestLine
RLimitCPU
RLimitMEM
RLimitNPROC
ThreadStackSize
LimitRequest*系列指令用来限制Apache在读取客户端请求的过程中使用的资源数量。通过限制这些值,可以减轻某些拒绝服务(DOS)攻击。
RLimit*系列指令用来限制Apache子进程所派生的进程使用的资源数量。通常,这些指令用来控制CGI
脚本和SSI exec命令所使用的资源。
ThreadStackSize指令在某些平台上用来控制堆栈大小。
LimitRequestBody指令
语法:LimitRequestBody bytes
默认值:LimitRequestBody 0
这个指令用来设置客户端发送的HTTP请求的最大字节数。LimitRequestBody指令可以作用于整个服务器、特定目录、特定文件、特定位置。如果客户端的请求超出了LimitRequestBody设置的值,那么服务器会回应一个错误信息给客户端,而不会去处理这个请求。
Bytes在0(不限制)到2147483647(2GB)之间。
比如:你允许客户端将
文件上传到某个位置,并且希望将上传文件的大小限制为500K,
LimitRequestBody 512000