无需 DNS 即可访问本地网站?

无需 DNS 即可访问本地网站?

我有一个带有 2 个站点的 nginx 负载均衡器设置。负载均衡器的 IP 地址是 192.168.123.10 我想本地访问这两个站点以检查一切是否正常。但我对主机名和域名有点困惑。我为第一个站点指定了主机名:“test”和域名“mytest.local”。我在手册中看到,如果我想访问该站点,我应该转到 test.mytest.local 并使该地址的 DNS 指向负载均衡器的 IP。

但是我不明白我的电脑如何知道我想要哪个站点,因为如果我进行负载平衡的另一个站点是 anothertest.mytest.local 并且它解析为相同的 IP,这有什么不同?

我没有设置任何 DNS,我只是想检查 nginx 是否正常工作,所以我仍然可以本地访问网站 test.mytest.local 吗?(无需设置 DNS)?

答案1

是的,你可以,/etc/hosts像这样编辑:

192.168.0.10 example.com.local

当您尝试解析任何主机名时,它会首先检查该文件,然后继续使用 DNS 服务器。我这样说是为了让你知道,例如,如果你添加1.2.3.4 google.com/etc/hosts,你将无法获得真正的google.com

答案2

“NGINX 服务器块”似乎就是您正在寻找的。

Web 客户端(即 Firefox 或 Chrome)将所需的 URL 发送到 Web 服务器,因此 Web 服务器可以根据 Web 浏览器用于访问的“名称”在同一 IP 上提供不同的站点。

看一下这个示例配置此 NGINX 页面,这是不言自明的:

http {
  index index.html;

  server {
    server_name www.domain1.com;
    access_log logs/domain1.access.log main;

    root /var/www/domain1.com/htdocs;
  }

  server {
    server_name www.domain2.com;
    access_log  logs/domain2.access.log main;

    root /var/www/domain2.com/htdocs;
  }
}

答案3

通过这种方式,您可以访问www.domain1.com通过同一台机器。但就我而言,我想访问www.domain1.com通过不同的机器,在同一网络中本地连接。

通过访问www.domain1.com通过不同的机器,它尝试从不同设备的“/etc/hosts”文件解析主机。

相关内容