我刚刚设置了一个开发服务器。我创建了 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 设置中的搜索域。如果您需要具体建议,请告诉我们您使用的客户端操作系统。