3. 高级配置

本节中讨论的选项可从 WebminApache 模块中访问。

3.1. 进程和限制

图 4.5. 限制 Apache 的进程数

限制 Apache 的进程数

如果您想要调整 Apache 对系统资源的占用,可以限制 Apache 的初始实例数(服务器初始进程)和可启动的最多进程数(服务器最多剩余进程数);每进程的子客户数(每服务器进程的最多请求数)和头大小(请求的最多头数请求头的最大大小请求行的最大长度)。

3.2. 网络和寻址

图 4.6. 更改 Apache 监听的端口

更改 Apache 监听的端口

图 4.6 “更改 Apache 监听的端口”为您演示了如何指定 Apache 监听的普通端口(默认为 80,本例中为 8080) 以及加密通讯端口(默认为 443,本例中为 4433)。

3.3. 控制基本身份验证访问

身份验证通常会需要提供用户名和密码,但也可能包括其它身份验证途径。您可以控制对网站某些部分(目录)的访问需要使用密码文件,而该密码文件就列出了用户名及与其匹配的密码。实现这种验证方案的步骤如下:

  1. 创建密码列表文件并填入它。

  2. 在该目录中创建引用密码文件的特殊配置指令以便对目录进行保护。

现在我们假定您想要控制对目录 /var/www/html/restricted/ 的访问。

要创建密码文件,请在控制台中以 root 身份输入 htpasswd -c -m 密码文件路径 用户名-c 选项只能在第一次运行时使用,以便创建密码文件。

# htpasswd -c -m /etc/httpd/.htpass li_si
New password: verySecret
Re-type new password: verySecret
Adding password for user li_si

上面的例子创建了一个 /etc/httpd/.htpass 文件,其中包含了为用户 li_si 所指定的密码(verySecret)。当然,verySecret 在存储的时候会进行加密。

[提示]提示

为了尽可能降低安全风险,我们建议您将生成的密码文件存放在文档目录之外,并且确认对该文件的访问尽可能加以限制。

当您的密码文件生成之后,您必须让 Apache 使用该文件。在 Apache 主屏幕中进入您想要保护的目录所在的服务器(比如默认服务器)(图 4.1 “Apache 模块的启动屏幕”)。在服务器屏幕的底部有一个小表单可创建每目录的选项。

图 4.7. 每目录选项指令

每目录选项指令

完成后,会在每目录选项节中出现一个新图标目录 /var/www/html/restricted。单击该图标,然后单击新页面中的访问控制。您可以参照图 4.8 “每目录选项”填入表单。单击保存按钮可记录您的设置。

图 4.8. 每目录选项

每目录选项

3.4. 处理一台 Web 服务器为多个域名服务的情况

[警告]警告

设置虚拟主机时,如果收到的请求不符合任何一台虚拟主机的设置,则第一台虚拟主机将会无条件接收收到的请求。

通过虚拟服务器节,您可以使用下面的表单直接设置多域名 Web 服务器。

图 4.9. 创建基于其它服务器的虚拟服务器

创建基于其它服务器的虚拟服务器

例如,您的公司拥有 foo.combar.net 两个域名。您只需要指定文档根(您网站文件存储的目录)以及虚拟主机的名称。如果您在管理多个网站,您可以从其它虚拟服务器中复制配置指令(参见图 4.9 “创建基于其它服务器的虚拟服务器”)。这可以节省您的大量时间。

[注意]注意

我们在此设置“基于名称的虚拟主机”,也就是说我们在同一 IP 地址上提供不同服务器的服务。要实现这一要求,您需要用如下方法在 Apache 的主配置文件中添加一条特殊的指令:

# echo "NameVirtualHost *:80" >> /etc/httpd/conf/httpd.conf

别忘了单击应用更改按钮重新启动服务器。

[注意]注意

当然,您的名称服务器(第 3 章 BIND DNS 服务器)也必须配置好,以便当客户请求虚拟主机名(www.foo.com)时,服务器会自动将其转向您的 Web 服务器。

每台虚拟服务器都有与以上小节类似的选项,但是所有的虚拟服务器都共享同一个 Apache 父进程。