当您的 IP 地址作为 URL 输入时,如何设置要提供服务的默认网站?

问题描述 投票:0回答:6

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

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

apache ip
6个回答
19
投票

您要使用的是

_default_
VirtualHost

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

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

_default_
主机。

编辑
这也可以写成:

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

重要的是,这是配置中的第一个

VirtualHost
,因为 Apache 将开始从上到下匹配它们,根据
ServerName
ServerAlias
选择最适合的一个。

这篇文章可能也会引起您的兴趣: Apache 默认虚拟主机


7
投票

只需在您的

Include sites-enabled/
文件中找到
apache2.conf
行,然后将您想要作为站点默认值的 conf 文件的路径添加到其上方。来自:

Include sites-enabled/

Include sites-enabled/mydefault.conf
Include sites-enabled/

2
投票

保持干净,不要删除或编辑

/etc/apache2/sites-available/
中的任何内容。

/etc/apache2/sites-available/

创建
所有新站点配置。 复制您想要启用的任何站点配置到
/etc/apache2/sites-enabled/
。只需确保
/etc/apache2/sites-enabled/
只有一个配置文件。

Ubuntu 20.04 LTS 中新的 apache 站点配置的示例格式是

<VirtualHost *:80>
    ServerName http://localhost
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/mysiteroot/public
    <Directory /var/www/html/mysiteroot>
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

请注意,

000-default.conf
默认位于上述两个目录中,只能用
/etc/apache2/sites-enabled/
中的新配置替换,以便在需要时可以随时恢复。

进行任何配置更改后重新启动 Apache2 服务。


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
文件是可以的,但在大多数情况下,安装包会将其视为修改后的文件并以某种怪异方式管理它,这就是为什么我认为仅更改软链接更干净。


0
投票

许多服务器没有单一的配置文件,而是有多个针对各种虚拟主机的特定于主机的配置文件,组织如下:

/etc/apache2/
site_available(实际配置文件)
site_enabled(指向sites_available中文件的符号链接)

为了在通过共享 IP 地址访问时首先加载特定的虚拟主机配置,请将符号链接(仅)重命名为排序时第一个的名称,例如 00-default 原来是:

站点-可用示例:
lrwxrwxrwx 1 root root 41 七月 27 2019 00_yourdomain.com.conf -> ../sites-available/yourdomain.com.conf
lrwxrwxrwx 1 root root 45 七月 27 2019 00_yourdomain.com.ssl.conf -> ../sites-available/yourdomain.com.ssl.conf

*** 这是一个“干净”、易于解释、简单的方法,(重要的是)不涉及 apache2.config 文件!


0
投票

这可以通过将 Vhost 配置文件中的服务器名称设置为 ServerName 处的本地服务器 IP 地址,并指向包含要在 DocumentRoot 处提供服务的所需文件的正确文件夹来实现。与往常一样,重新启动 Apache 以激活新配置。 这假设所考虑的 IP 地址是本地 IP 地址

<VirtualHost  *:80>
    ServerAdmin [email protected]    
    DocumentRoot "/var/www/base_folder/dummy_default_folder"
    ServerName 192.168.X.XX     #the key entry, your local server IP address
    ServerAlias example.server.com 
    ErrorLog "/var/log/httpd/example.error_log"
    CustomLog "/var/log/httpd/example.access_log" common
</VirtualHost>

经过测试,可以在 Apache/2.4.37 (rocky) 中工作

© www.soinside.com 2019 - 2024. All rights reserved.