我有一台专用服务器,它只有一个公共 IP 地址(例如 10.20.30.40)和一个专用于它的域名(example.com)
在该服务器上,我有许多虚拟机托管在 ESXi Hypervisor 上,每个虚拟机执行不同的工作(邮件服务器、聊天服务器、文件服务器等)。每个虚拟机都从我的 DNS-vm DHCP 中获取一个本地 IP。
我如何将每个虚拟机本地解析到子域?
我认为将一个充当 DNS 服务器的虚拟机放在前面可以解析对虚拟机的所有请求,但我不知道如何操作。请参阅我的服务器内部网络拓扑:
例如,如果有人向 mail.example.com 发送请求,他的请求将首先到达 DNS,然后 DNS 将所有流量(前向和后向)路由到特定虚拟机(192.168.1.10)
答案1
如果它们不是完全异构的,我建议使用负载均衡器。但由于您主要运行 http 服务器,因此我会使用单个 NGINX 框将代理反向回服务。然后您可以手动转发端口 25(或您的邮件服务器使用的任何端口)
使用 Nginx Web 服务器时,可以使用服务器块(类似于 Apache 中的虚拟主机)来封装配置详细信息并在单个服务器上托管多个域。
https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/