12

我有一个服务器,其中托管了多个网站,并且使用基于名称的 apache 虚拟主机进行区分。

如何设置它以便在地址栏中输入我的服务器的 ip 时托管特定的网站?

4

3 回答 3

20

您要使用的是_default_ VirtualHost.

<VirtualHost _default_:80>
    DocumentRoot /www/default80
    # ...
</VirtualHost>

它在这里描述。基本上,如果没有其他内容与请求匹配,_default_则将使用主机。

编辑
这也可以写成:

<VirtualHost *>
    DocumentRoot /www/default
    # ...
</VirtualHost>

重要的是,这是VirtualHost配置中的第一个,因为 Apache 将从上到下开始匹配它们,并根据ServerName和选择最适合的那个ServerAlias

这篇文章可能也很有趣: Apache default VirtualHost

于 2013-09-26T11:22:25.417 回答
5

只需Include sites-enabled/在文件中找到该行apache2.conf并将路径添加到您希望在其上方成为站点默认值的 conf 文件。从:

Include sites-enabled/

Include sites-enabled/mydefault.conf
Include sites-enabled/
于 2015-03-07T00:07:05.723 回答
1

首次安装 apache2 时,有一个名为000-default.conf. 这将是默认设置,因为它很可能首先出现在/etc/apache2/sites-enabled.

要将您自己的文件作为默认文件,您可以将下面的文件替换为您自己的文件,也可以/etc/apache2/sites-available/000-default.conf像这样替换链接:

sudo rm /etc/apache2/sites-enabled/000-default.conf
sudo ln -s ../sites-available/my-site-setup.conf /etc/apache2/sites-enabled/000-default.conf

然后重新启动 apache2(或只是重新加载)。

正如另一个答案所_default_提到的,它是用于定义一个可以使用默认 IP 地址找到的虚拟主机。它不是默认的虚拟主机。

<VirtualHost _default_:80>
...

相当于

<VirtualHost *:80>
...

*是一个匹配任何 IP 地址的全局模式。

笔记:

替换000-default.conf文件没问题,但在大多数情况下,安装包会将其视为修改后的文件并以某种奇怪的方式对其进行管理,这就是为什么我认为只更改软链接会更干净。

于 2022-01-15T06:06:01.367 回答