📄 ahttp.txt
字号:
inetd
伺服器将由系统程序 inetd 执行;启动伺服器使用的命令加在
/etc/inetd.conf 档案里。
standalone
伺服器将会作为伺服程式(daemon)执行;启动伺服器使用的命令
加在系统启动指令稿里(/etc/rc.local or /etc/rc.d/...)。
inetd 在这两个选项里是较少使用的。因为接收到每个 http 连线就会
重头开始执行一份新的伺服器拷贝;连线结束後,这支程式就会结束。
每次连线要付出的代价很高,但是因为安全上的理由,某些管理者喜欢
这个选项。
standalone 是 ServerType 使用最普遍的设定,因为它更为有效率。
伺服器启动一次,而且服务所有的连线。如果你想要执行阿帕契来服务
一个忙碌的站台, standalone 大概将会是你唯一的选择。
安全: 如果你对安全性有偏执,以 inetd 模式来执行它。两种方式都
不能绝对确保安全性,但是大部分人使用 standalone 用得很高兴时,
inetd 大概比较不会遭到攻击。
3.28 StartServers 指令
语法: StartServers 数字
预设: StartServers 5
用於: server config
状态: 核心
这个 StartServers 指令设定启动时建立的子伺服程序数量。因为程序
的数量是依据负载动态控制的,通常没有什麽理由得要调整这个参数。
参阅 MinSpareServers 以及 MaxSpareServers 。
3.29 TimeOut 指令
语法: TimeOut 数字
预设: TimeOut 1200
用於: server config
状态: 核心
TimeOut 这个指令设定伺服器接收一个请求以及完成一个请求最长的等
待时间,以秒为单位。所以如果它花费比 TimeOut 更多秒来让客户端
传送请求或接收回应,伺服器将会中断该连线。因此 TimeOut 限制一
次可以传输的最大资料量;对於大档案,以及慢速网路传输时间可能会
很久。
3.30 User 指令
语法: User 使用者辨识码
预设: User #-1
用於: server config
状态: 核心
User 这个指令设定伺服器用来回答请求的使用者辨识码。为了要能够
使用这个指令,必须以 root 身分起始执行独立的伺服器。Unix使用者
辨识码可以是其中之一:
一个使用者名称
藉由名称参照给定的使用者。
# 跟随著使用者编号
藉由使用这个编号参照他们。
这个使用者应该不能有存取外界所不能看到的档案的权限,而且与此类
似,这个使用者应该不能执行对 httpd 要求而言没有意义的程式码。
建议你特别为执行这个伺服器设立新的使用者以及群组。某些管理者使
用 nobody 但是这并非永远可行或合适的。
注意: 如果你以非 root 使用者的身分启动这个伺服器,它将无法切换
到权限较低的使用者,并且取而代之的是它将会继续以原使用者身份来
执行。如果你真的是以 root 启动这个伺服器,那麽这个父程序一般仍
然以 root 身分在执行。
安全: 不要把 User(or Group) 设为 root 除非你确实知道你在做什麽
以及会有怎麽样的危险。
3.31 指令
语法: ...
用於: 伺服器配置
位於: 核心部份
以及 用来把一组指令包装起来,这些
指令将只会应用到某个特定的虚拟主机上。任何可用於虚拟主机的指令
都可以使用。当伺服器接收到某个特定主机上的文件请求的时候,它会
使用包装在 节段里的配置指令。位址可以是
。虚拟主机的 IP 位址
。虚拟主机的 IP 位址的完整领域名称。
范例:
ServerAdmin webmaster@host.foo.com
DocumentRoot /www/docs/host.foo.com
ServerName host.foo.com
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
目前,每段 VirtualHost 必须符合伺服器不同的 IP 位址,所以伺服
机器必须配置成能够接收多个位址的 IP 封包。如果该机器并没有多个
网路界面,那麽这可以配合 ifconfig alias 指令来完成(如果你的作
业系统支援这个功能),或是配合像是 VIF(for SunOS(TM)4.1.x)一类
的核心修补档。
第四章
阿帕契标准模组
4.1 mod_access 模组
这个模组包含在 mod_access.c 档案里,而且依预设会编译进去。它提
供以客户端主机名称或 IP 位址为基础的存取控制。
4.1.1 allow
语法: allow from 主机 主机 ...
用於: directory, .htaccess
需求: Limit
状态: 基础
模组: mod_access
allow 这个指令影响能够存取某特定目录的主机;典型是用在
节区里。主机可以是下列之一:
all
允许所有的主机存取。
(部份)领域名称
允许名称为此字串或以此字串结束的主机存取。
完整的 IP 位址
允许该 IP 位址的主机存取。
部份的 IP 位址
某个 IP 位址第一到第三个位元组,作为子网路限制之用。
范例:
allow from .ncsa.uiuc.edu
允许在指定领域里的所有主机进行存取。
注意这比较的是整个的内容;所以 bar.edu 不会符合 foobar.edu 。
参阅 deny 以及 order 指令。
4.1.2 deny
语法: deny from 主机 主机 ...
用於: directory, .htaccess
需求: Limit
状态: 基础
模组: mod_access
deny 这个指令影响能够存取某特定目录的主机;典型是用在
节区里。主机可以是下列之一:
all
拒绝所有的主机存取
(部份)的领域名称
拒绝名称为此字串或以此字串结束的主机存取。
完整的 IP 位址
拒绝该 IP 位址的主机存取。
部份的 IP 位址
某个 IP 位址第一到第三个位元组,作为子网路限制之用。
范例:
deny from 16
拒绝在指定网路里的所有主机进行存取。
注意这比较的是整个的内容;所以 bar.edu 不会符合 foobar.edu 。
参阅 allow 以及 order 指令。
4.1.3 order
语法: order 次序
预设: order deny, allow
用於: directory, .htaccess
需求: Limit
状态: 基础
模组: mod_access
order 这个指令控制评估 allow 以及 deny 指令的次序。次序可以是
其中之一:
deny,allow
在 allow 指令之前评估 deny 指令
allow,deny
在 deny 指令之前评估 allow 指令
mutual-failue
只有那些出现在 allow 列表里而且没有出现在 deny 列表里的
主机可以进行存取。
范例:
order deny,allow deny from all allow from .ncsa.uiuc.edu
允许在 ncsa.uiuc.edu 这个领域里的主机进行存取;拒绝所有其它的
主机存取。
4.2 mod_alias 模组
这个 mod_alias 模组包含在 mod_alias.c 档案里,而且依预设会编
译进去。它提供的功能是对映主机档案系统的不同部份到文件树去,及
URL 转向。
4.2.1 Alias
语法: Alias url-路径 目录-档案名称
用於: server config, virtual host
状态: 基础
模组: mod_alias
Alias 这个指令使文件可以存放在 DocumentRoot 之外的本地档案系统
里。以 url-路径 开始的 URLs 将会被对映到以 目录-档案名称 开始
的本地档案去。例如:
Alais /image /ftp/pub/image
对於 http://myserver/images/foo.gif 的这个请求会使得伺服器回传
档案 /ftp/pub/image/foo.gif 。
参阅 ScriptAlias 指令。
4.2.2 Redirect
语法: Redirect url-路径 url
用於: server config, virtual host
状态: 基础
模组: mod_alias
Redirect 这个指令对映旧的 URL 到新的去。新的 URLs 会被回传给
客户端以便配合新的位址再次尝试撷取。Url-路径 (%-decoded)路径;
任何以这个路径作为开始的文件请求都将回传一个错误并重导到以 url
作为开始的新(%-encoded) url 去。例如:
Redirect /service http://foo2.bar.com/service
如果客户端请求 http://myserver/service/foo.txt 则会被告知应该
撷取 http://foo2.bar.com/service/foo.txt 来取代。
注意: 无论配置档里的次序如何,Redirect 指令优先於 Alias 以及
ScriptAlias 指令。
4.2.3 ScriptAlias
语法: ScriptAlias url-路径 目录-档案名称
用於: server config, virtual host
状态: 基础
模组: mod_alias
ScriptAlias 这个指令除了还另外把目标目录标记为包含 CGI 指令稿
以外其功能与 Alias 指令相同,以 url-路径 作为开始的 URLs 将会
被对映到以 目录-档案名称 作为开始的指令稿去。例如:
ScriptAlias /cgi-bin/ /web/cgi-bin/
对於 http://myserver/images/foo 的这个请求会使伺服器去执行指令
稿 /web/cgi-bin/foo 。
4.3 mod_asis 模组
这个模组包含在 mod_asis.c 档案里,而且依预设会编译进去。它是为
.asis 档案而提供的。任何 mime 型态为 httpd/send-as-is 的文件都
将由这个模组处理。
4.3.1 目的
允许定义档案的型态,如此阿帕契可以不加 HTTP 标头(headers) 传送
它们。
这可以用来从伺服器传送任何型态的资料,包括重导(redirects) 以及
其它特殊的 HTTP 回应,而不需要 cgi-script 或是 nph script 。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -