4.7. 添加您的第一个服务器

在本节中,我将为您提供一个关于如何使用 Caudium 创建您的第一个站点(虚拟服务器)的分步教程。如果您想使用 Caudium 做一些有用的事情,您必须至少创建一个虚拟服务器。没有这第一个服务器,Caudium 将不会做任何事情。如果您使用浏览器访问您的服务器,您只会得到一个对话框,提示您输入 CIF. 登录名/密码。

Note

虚拟服务器允许您在同一端口上运行多个服务器。例如,您可以让 www.foo.com 和 www.foo.org 在同一端口和机器上运行。这就是为什么它被称为虚拟服务器。

要创建您的第一个服务器,请登录基于 Web 的 CIF.。单击 虚拟服务器 选项卡,然后单击 按钮。

在这里,系统会提示您输入服务器名称

输入一个容易识别的名称。您还必须选择配置类型。根据您选择的配置,您的服务器将具有不同的模块集。换句话说,您的服务器将具有不同的功能。对于您的第一个服务器,请选择基本服务器,然后单击 确定

4.7.1. 服务器变量

现在您将再次看到“虚拟服务器”页面。如您所见,您有两个不同的文件夹可以操作:服务器变量 (图 4-1) 和 文件系统 (图 4-2)。

服务器变量包含您站点的 URL,以及它将可用的端口。文件系统描述了包含您希望 Caudium 提供的 .html 和其他文件的文件/目录。

在服务器变量中,进入 监听端口 并选择 配置新端口。使用默认值,选择 使用这些值,然后单击 。现在选择您站点的 URL,然后选择 继续。现在您可以返回到显示所有模块的页面,也就是您进入“服务器变量”之前的页面。

在您的服务器名称下,您将看到服务器的状态。如果它包含蓝色的 “Open” 字样,则一切正常,您可以继续配置文件系统。

如果它包含红色的 “Not open” 字样,则存在问题。您可以通过 CIF. 选项卡进入事件日志进行调查。如果您遇到错误 Failed to open socket on 0:80 (already bound ?),则可能是另一个程序或 Caudium 本身已经在该端口上运行。要解决此问题,请找出哪个程序正在使用此端口,并重启 Caudium [1]。要重启 Caudium,请进入 操作->关闭->关闭 Caudium->重启 Caudium。等待几秒钟,当出现提示时,选择 虚拟服务器。现在选择您的服务器,您应该看到蓝色的 “Open” 字样。

NoteCIF. 中,您可能会想知道 http 和 http2 这两种不同的协议是什么?
 

区别在于 http2 使用 Caudium 的内部内存缓存,而 http 是普通的 Pike http 子系统。因此,正如您可能预期的那样,http2 比 http 更快。但是,在某些特定站点上存在一些问题。

4.7.2. 选择文件系统

通过选择文件系统,您可以告诉 Caudium 它将向浏览您站点的人发送哪些文件。对于那些了解其他 Web 服务器的人,请密切关注这些解释,因为 Caudium 在这方面与其他服务器截然不同。

Caudium 文件系统使用 Unix 的挂载点哲学,而不是c, d等等。挂载点概念允许您将文件/目录放在您想要的任何 URL 下,而无需更改本地文件系统上的文件。例如,假设您有以下本地文件系统

假设您的 URL 是 http://www.iteam.org/。

使用默认配置,您会说 http://www.iteam.org 指向 /home/,这样您将在 http://www.iteam.org/customers/customer1 下拥有 customer1,在 http://www.iteam.org/friends/bertrand 下拥有 bertrand,在 http://www.iteam.org/customers/bigcustomer3 下拥有 bigcustomer3。

但是 bigcustomer3 给您带来了很多钱,他要求您使用诸如 http://www.iteam.org/bigcustomer3 这样的 URL。但是,由于他的 FTP 客户端配置,他不想从 /home/customers/bigcustomer3 移动。此外,您无法移动其他帐户。使用挂载点哲学,您只需创建另一个挂载点,说明 /home/customers/bigcustomer3 挂载在 /bigcustomer3 上,这样当有人使用 http://www.iteam.org/bigcustomer3 时,Caudium 将从 /home/customers/bigcustomer3 为他们提供文件。

现在让我们回到我们的设置。进入文件系统模块,然后选择NONE/ 挂载在 / -> 路径 -> 搜索路径。在这里,您将决定当有人访问您服务器的根目录时,哪些目录可用。例如,写入/home.

您现在可以启动您喜欢的浏览器访问您站点的 URL 并享受了。

如果您不希望访问者出于安全原因获取您的文件列表,您可以禁用列表,方法是将目录设置 -> 默认启用目录列表设置为。接下来,您必须点击更多选项按钮,然后重新加载模块。不要忘记单击保存。可以在任何目录中放置一到两个 “魔法文件”,以使其可浏览/不可浏览,尽管 CIF. 中对该特定文件系统进行了设置


.www_browsable - the directory will always be browsable
.www_not_browsable - the directory will never be browsable
      

最后,为了允许 bigcustomer3 访问他的 URL,请转到文件系统 -> 复制模块。接下来,转到路径 -> 搜索路径并输入/home/customers/bigcustomer3,然后输入/bigcustomer3挂载点.

图 4-3 显示了您应该得到的输出。

Note

如果您在将 Caudium 指向您的站点之后创建了这些文件/目录,则可以安全地进入操作选项卡,然后转到缓存 -> 缓存状态 -> 刷新缓存.

4.7.3. 创建虚拟服务器

Web 服务器通常在单个端口和单个 IP 地址上运行。那么,如何在单个端口和单个 IP 上拥有不同的站点呢?解决方案是告诉 Caudium 服务器基于 URL 是不同的。这是虚拟主机模块的任务。由于此模块在我们使用的通用模板中不存在,因此您必须添加它。只需使用添加模块按钮,然后单击名为 “虚拟主机匹配器” 的图像。

现在您可以使用正则表达式进行重定向了。如果您不知道正则表达式(简称 “regexp”)是什么,请查看 regexp 的 man page,参见 Pike/Perl 手册,或者可以购买一本关于正则表达式的书籍。要根据 URL 编写这些重定向,请进入正则表达式重写规则并添加以下规则

保存并在命令行中键入此命令,以便让您的浏览器解析 www.virtualhost.com


# echo "127.0.0.1   www.virtualhost.com" >> /etc/hosts.
      

现在您必须在虚拟服务器选项卡的根目录添加另一个虚拟服务器,按钮为新建虚拟服务器。将虚拟主机作为服务器名称,并选择通用服务器配置类型。进入服务器变量 -> 服务器 URL并输入http://www.virtualhost.com/。您应该看到

此服务器由我的第一个虚拟服务器中的端口处理。服务器 URL: http://www.virtualhost.com/

文件系统 -> NONE/ 挂载在 / -> 路径 -> 搜索路径.

中更改文件系统根目录和 /tmp。您现在可以将您喜欢的浏览器指向 http://localhost/ 和 http://www.virtualhost.com/ 并查看结果。

如果您收到错误提示 www.virtualhost.com 未知,请检查您的 host 文件。

有关虚拟主机的更多信息,请参阅 LDPLDP 提供的 Virtual-Web Mini-HOWTO,或在/usr/share/doc/HOWTO/usr/doc/HOWTO下的 Debian GNU/Linux 中。

注释

[1]

要识别,您可以使用 lsof(8)。如果您想知道哪些程序在端口 80 上监听,只需以 root 身份发出以下命令

Note

如果 lsof 是使用 HASSECURITY 选项编译的,则您需要 root 权限,这对于某些 GNU/Linux 发行版是默认设置

:


# lsof -i TCP:80
          

这是结果


COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
caudium 1001 root   12u  IPv4   3993       TCP *:www (LISTEN)