Apache 网络服务器的 ServerName 和/或 ServerAlias 应该在 LAN 的 DNS 服务器上注册吗?

Apache 网络服务器的 ServerName 和/或 ServerAlias 应该在 LAN 的 DNS 服务器上注册吗?

如果我在我的 LAN 中创建一个 Apache 网络服务器,并且有 2 个 VirtualHosts,都在端口 80 上,我是否应该在我的 LAN 的 DNS 服务器上注册它们的 ServerName 和/或 ServerAlias?

这就是我所做的(在此示例中使用下面的值):

LAN 域名 =company.local
域控制器(和 DNS 服务器)系统 = Windows Server 2016
Web 服务器的主机名 = myserver
Web 服务器的 IP = 192.168.0.123
Web 服务器的系统 = Ubuntu Server 22.04

在我的 Windows 桌面上使用tracert 192.168.0.123(同一 LAN 上的独立机器)​​,它回答Tracing route to myserver.company.local [192.168.0.123]...

在 上安装了 Apache myserver。安装后,当我在桌面浏览器http://192.168.0.123或上使用时http://myserver.company.local,它会打开“Apache2 默认页面(有效!)“)。

然后我使用以下命令配置虚拟主机myserver

(内容/etc/apache2/sites-available/site_1.conf):

<VirtualHost *:80>
        ServerAdmin admin@site_1
        ServerName site_1
        ServerAlias www.site_1
        DocumentRoot /var/www/site_1/public_html
</VirtualHost>

(内容/etc/apache2/sites-available/site_2.conf):

<VirtualHost *:80>
        ServerAdmin admin@site_2
        ServerName site_2
        ServerAlias www.site_2
        DocumentRoot /var/www/site_2/public_html
</VirtualHost>

当我在桌面浏览器上输入以下任何地址时:

http://site_1
http://site_2
http://www.site_1
http://www.site_2
http://site_1.company.local
http://site_2.company.local
http://www.site_1.company.local
http://www.site_2.company.local

它返回一个包含消息的页面
嗯。我们找不到该网站。

当我在桌面浏览器上输入以下任何地址时:

http://myserver.company.local
http://192.168.0.123

返回虚拟主机的页面站点_1,并附有消息
成功!site_1 虚拟主机已开始运行!

这是否意味着我必须在 LAN 的 DNS 服务器上注册指向 的名称site_1和? 我还应该注册指向吗? 或者我必须将它们注册为和? 我是否必须删除与关联的注册?site_2192.168.0.123
www.site_1www.site_2192.168.0.123
site_1.myserver.company.localsite_2.myserver.company.local
myserver.company.local192.168.0.123

答案1

DNS

域名系统仅将域名从人类可读的地址转换为 IP 地址。

就你的情况而言,你的 LAN 网络中的任何本地域都应指向你的网络服务器知识产权。(不是虚拟机)

反向代理

阿帕奇或者Nginx,它们的作用是监听 IP:port 并读取 HTTP 请求的标头,然后过滤用户想要的内容(存在主持人标头)。它通过套接字或 IP:PORT 将用户想要的内容与本地容器/虚拟机/服务进行映射。

当然,这些工具的功能更加强大,但这超出了本文的答案范围。


有很多针对(本地?)DNS 的解决方案,我不是微软的粉丝,也从未使用过 Windows Server。我想配置自己的专用 DNS 代理(它会缓存来自公共 DNS 的响应,并允许您根据需要自行配置)。您的解决方案是将所有 DNS 记录指向您的反向代理服务器

myserver.company.local -> 192.168.0.123
site1.myserver.company.local -> 192.168.0.123
site2.myserver.company.local -> 192.168.0.123

当然可以

myserver.company.local -> 192.168.0.123
site1.company.local -> 192.168.0.123
site2.company.local -> 192.168.0.123

魔法只有一个,配置文件中的 SERVERNAME 必须与 DNS 域名匹配。-Apache 示例nginx 示例- 就这样。

相关内容