虚拟主机,必须修改 etc/hosts

虚拟主机,必须修改 etc/hosts

我刚刚设置了一个开发服务器。我创建了 2 个 apache 虚拟主机,使用了 noip.com 的两个不同域名。

奇怪的是,我必须在 etc/hosts 文件中添加这两项内容,而以前配置其他 vps 时我从来不用这么做 :o

我以前从来不用编辑该文件,现在我必须编辑它,这样我的两个域名都指向我的 vps 的 ip。在编辑它之前,我只有两个域名中的一个指向它(我在订购 vps 时输入的主机名)。

是不是因为我没有运行自己的 DNS 服务器?

现在一切都正常运行,但是如果有人能告诉我为什么我必须使用 etc/hosts,我将不胜感激。

编辑

等/主机

::1 localhost.localdomain localhost
127.0.0.1 localhost.localdomain localhost

173.212.221.26 brico.no-ip.org  brico


173.212.221.26 brico-redmine.no-ip.org  brico-redmine

apache2ctl -S

root@brico:~# apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server brico.no-ip.org (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost brico.no-ip.org (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost brico-redmine.no-ip.org (/etc/apache2/sites-enabled/redmine:1)
Syntax OK

brico-redmine.no-ip.org 虚拟主机文件

<VirtualHost *:80>
    DocumentRoot /opt/redmine/public
    ServerName brico-redmine.no-ip.org
    PassengerPoolIdleTime 0
        <Directory "/opt/redmine/public">
                PassengerEnabled on
                AllowOverride
                Options -MultiViews
        </Directory>
</VirtualHost>

答案1

您的浏览器必须确定主机名指向哪个 IP 地址。它可以通过 hosts 文件、私有 DNS 服务器或公共 DNS 服务器来完成此操作。

由于您已经注册了两个 noip.com 主机名,因此您不需要在 hosts 文件中使用这些行。您实际上拥有一个公共 DNS 服务器,尽管它很简单。

只需确保您的 Apache 虚拟主机配置为响应正确的 ServerName。应该响应brico.no-ip.org另一个是brico-redmine.no-ip.org。从您的 hosts 文件中删除这两行,否则它将优先。

如果你也想使用单词布里科brico-redmine在浏览器中,您需要将 no-ip.org 添加到 dns-client 设置中的搜索域。如果您需要具体建议,请告诉我们您使用的客户端操作系统。

相关内容