我有一个服务器,其中托管了多个网站,并且使用基于名称的 apache 虚拟主机进行区分。
如何设置它以便在地址栏中输入我的服务器的 ip 时托管特定的网站?
您要使用的是_default_
VirtualHost
.
<VirtualHost _default_:80>
DocumentRoot /www/default80
# ...
</VirtualHost>
它在这里描述。基本上,如果没有其他内容与请求匹配,_default_
则将使用主机。
编辑
这也可以写成:
<VirtualHost *>
DocumentRoot /www/default
# ...
</VirtualHost>
重要的是,这是VirtualHost
配置中的第一个,因为 Apache 将从上到下开始匹配它们,并根据ServerName
和选择最适合的那个ServerAlias
。
这篇文章可能也很有趣: Apache default VirtualHost
只需Include sites-enabled/
在文件中找到该行apache2.conf
并将路径添加到您希望在其上方成为站点默认值的 conf 文件。从:
Include sites-enabled/
到
Include sites-enabled/mydefault.conf
Include sites-enabled/
首次安装 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
文件没问题,但在大多数情况下,安装包会将其视为修改后的文件并以某种奇怪的方式对其进行管理,这就是为什么我认为只更改软链接会更干净。