最初,我们可以通过办公网或者外网+VPN 方式直接访问服务器内网的 HTTP 服务(例如一些运维组件的管理页面),但是现在由于网络做了一些变动,我们只能通过 DMZ 区代理去访问服务器内网。所以我们在 DMZ 区搭建了一套 NGINX,反向代理后面的 HTTP 服务,由于后面代理的服务非常多,而且有一些完全相同 url 的服务需要代理,因此我们想通过虚拟主机+域名的方式管理被代理的服务,比如 vsa.local.v1.net 代理了 172.101.110.1:8181/,vsb.local.v1.net 代理了 172.101.110.2:8180/等这种方式去区分服务。因此需要我们通过域名去访问 NGINX,但是我们并没有自己的内部 DNS (这个说来话长,不解释了)。 目前,有两种方案可选: 方案一:个人电脑上装个本地的 DNS,将*.local.v1.net 指向 DMZ 的代理 NGINX,好处是成本低,相对安全,缺点是需要每个人都装个私有 dns,有点麻烦; 方案二:在外网服务器上(华为云等)搭建一个私有 DNS 指向 DMZ 的代理 NGINX,然后个人电脑的 dns 配上这个外网服务器 ip,好处是对客户端影响小,坏处自然是花钱和相对没有方案一安全。
下面是两个方案的网络拓扑图。请问大家选哪个方案好呢?或者有什么更好的方案?
方案一:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.