cszer

Apache配置文件httpd.conf-1

分类: 技术, Apache   标签: , ,    评论: 0   阅读:2,366 views

httpd.conf配置文件主要由3个部分组成:

  • 全局环境(Section 1: Global Environment)
  • 主服务器配置(Section 2: ‘Main’ server configuration)
  • 虚拟主机(Section 3: Virtual Hosts)


环境设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
ServerTokens OS
# 告知用户端我们服务器的版本与操作系统而已,不需要更动他。
 
ServerRoot "/etc/httpd"
# 服务器配置的最顶层目录,有点类似 chroot 。包括 logs, modules
 
PidFile run/httpd.pid
# 放置 PID 的文件,可方便 Apache的管理啦!注意是相对路径!
 
Timeout 60
# 不论接收或传送,当持续连线等待超过 60 秒则该次连线就中断。
 
KeepAlive On    <==最好将预设的 Off 改为 On 啦!
# 是否允许持续性的连线,亦即一个 TCP 连线可以具有多个文件数据传送的要求。
# 举例来说,如果你的网页内含很多图片,那么这一次连线就会将所有的数据送完,
# 而不必每个图档都需要进行一次 TCP 连线。
 
MaxKeepAliveRequests 500  <==可以将原本的 100 改为 500 或更高
# 与上个设定值 KeepAlive 有关,当 KeepAlive 设定为 On 时,则这个数值可决定
# 该次连线能够传输的最大传输数量。为了增进效能则可以改大一点!0 代表不限制。
 
KeepAliveTimeout 15
# 在允许 KeepAlive 的条件下,则该次连线在最后一次传输后等待延迟的秒数。
# 当超过上述秒数则该连线将中断。设定 15 差不多啦!如果设定太高 (等待时间较长),
# 在较忙碌的系统上面将会有较多的 Apache 程序占用资源,可能影响性能
 
<ifModule prefork.c>   <==底下两个 perfork, worker 与内存管理有关!
StartServers       8   <==启动 httpd 时,唤醒几个 PID 来处理服务的意思
MinSpareServers    5   <==最小的预备使用的 PID 数量
MaxSpareServers   20   <==最大的预备使用的 PID 数量
ServerLimit      256   <==服务器的限制
MaxClients       256   <==最多可以容许多少个用户端同时连线到 httpd 的意思!
MaxRequestsPerChild  4000  <==每个程序能提供的最大传输数据
</ifModule>
<ifModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</ifModule>
 
Listen 80
#端口号
 
LoadModule auth_basic_module modules/mod_auth_basic.so
....(底下省略)....
# 载入模块的设定项目。Apache 提供很多有用的模块 (就是外挂) 给我们使用了!
 
Include conf.d/*.conf
#  /etc/httpd/conf.d/*.conf 的配置文件都会被载入
 
User apache
Group apache
# 前面提到的 prework, worker 等模块所启动的 process 之拥有者与群组设定。
# 这个设定很重要,因为未来你提供的网页文件能不能被浏览都与这个身份有关啊!
 
主服务配置:
ServerAdmin XXX@XXX.com  <==改成你自己的 email 吧
# 系统管理员的 email,当网站出现问题时,错误讯息会显示的联络信箱(错误回报)。
 
ServerName www.cszhi.com
# 设定主机名称,这个值如果没有指定的话,预设会以 hostname 的输出为依据。
# 千万记得,你填入的这个主机名称要找的到 IP 喔!(DNS 或 /etc/hosts)
 
UseCanonicalName Off
# 是否使用标准主机名称?如果你的主机有多个主机名称,若这个设定为 On,
# 那么 Apache 只接受上头 servername 指定的主机名称连线而已。请使用 Off。
 
DocumentRoot "/var/www/html"  <==存放网页目录的文件
 
<directory />
    Options FollowSymLinks
    AllowOverride None
</directory>
# 这个设定值是针对 Apache 服务器的‘默认环境’而来的,因为针对‘/’的设定嘛!
 
<directory "/var/www/html">         <==针对特定目录的限制!底下参数很重要!
    Options Indexes FollowSymLinks  <==建议拿掉 Indexes 比较妥当!
    AllowOverride None
    Order allow,deny
    Allow from all
</directory>

Options (目录参数):
Options指令是开启或关闭站点不同部分功能的主要工具之一。灵活运用这条指令可以让你牢牢控制住在每个目录中允许什么功能或不允许什么功能。主要的参数值有:

  • Indexes:如果在此目录下找不到‘首页文件 (预设为 index.html) ’时, 就显示整个目录下的文件名称,至于‘首页文件档名’则与 DirectoryIndex 设定值有关。
  • FollowSymLinks:这是 Follow Symbolic Links 的缩写, 字面意义是让连结档可以生效的意思。我们知道首页目录在 /var/www/html,既然是 WWW 的根目录,理论上就像被 chroot 一般! 一般来说被 chroot 的程序将无法离开其目录,也就是说预设的情况下,你在 /var/www/html 底下的连结档只要连结到非此目录的其他地方,则该连结档预设是失效的。 但使用此设定即可让连结档有效的离开本目录。
  • ExecCGI:让此目录具有执行 CGI 程序的权限,非常重要!举例来说,之前热门的 OpenWebMail 使用了很多的 perl 的程序,你要让 OpenWebMail 可以执行,就得要在该程序所在目录拥有 ExecCGI 的权限才行喔!但请注意,不要让所有目录均可使用 ExecCGI !
  • Includes:让一些 Server-Side Include 程序可以运作。建议可以加上去!
  • MultiViews:这玩意儿有点像是多国语言的支援,与语系数据 (LanguagePriority) 有关。最常见在错误讯息的回报内容,在同一部主机中,可以依据用户端的语系而给予不同的语言显示呢! 预设在错误回报讯息当中存在,你可以检查一下 /var/www/error/ 目录下的数据喔!

AllowOverride (允许的覆写参数功能):

表示是否允许额外设定档 .htaccess 的某些参数覆写?我们可以在 httpd.conf 内设定好所有的权限,不过如此一来若使用者自己的个人网页想要修改权限时将会对管理员造成困扰。因此 Apache 预设可以让使用者以目录底下的 .htaccess 文件内覆写 内的某些功能参数。 这个项目则是在规定 .htaccess 可以覆写的权限类型有哪些。常见的有:

  • ALL:全部的权限均可被覆写;
  • AuthConfig:仅有网页认证 (帐号密码) 可覆写;
  • Indexes:仅允许 Indexes 方面的覆写;
  • Limits:允许使用者利用 Allow, Deny 与 Order 管理可浏览的权限;
  • None:不可覆写,亦即让 .htaccess 文件失效!

Order, Allow, Deny (能否登入浏览的权限):

决定此目录是否可被 apache 的 PID 所浏览的权限设定啦!能否被浏览主要有两种判定的方式:

  • Order deny,allow:以 deny 优先处理,但没有写入规则的则预设为 allow。常用于:拒绝所有,开放特定的条件;
  • Order allow,deny:以 allow 为优先处理,但没有写入规则的则预设为 deny。常用于:开放所有,拒绝特定的条件。
  • 如果 allow 与 deny 的规则当中有重复的,则以预设的情况 (Order 的规范) 为主。
1
2
3
4
5
6
7
Alias /icons/ "/var/www/icons/"  <==制作一个目录别名 (相当于快捷方式)!
<directory "/var/www/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</directory>

除非注明,文章皆由( csz )原创,转载请标明本文地址
本文地址: http://www.cszhi.com/20120326/httpd-conf.html

03-26
2012

发表评论