假设
1) 我有一台在私有内部网中运行的服务器。它使用 tomcat 在 privateserverip:8080/appname 上提供 webapp
2)我有一个 myapp.local 域,当我使用http://myapp.local如果请求来自内部网,则从 privateserverip:8080/appname 为应用程序提供服务
这就是实际情况。
现在:我有一个公共域名:example.org,我希望如果网站将内部网中的用户重定向到 myapp.example.org,则应提供 privateserverip:8080/appname。如果内部网外的某人访问 myapp.example.com,则不会发生任何事情。
请告诉我这可能吗?:)
我可以在 example.com 的 nginx 中配置 vhost,还可以为 example.com 创建 DNS 条目等。一切你想要的。只要告诉我这是可能的
感谢您的帮助 :)
答案1
以下两种方式之一:
- 您将本地客户端指向内部网中的 DNS 服务器,该服务器为所有发往 myapp.example.com/appname 的请求提供 Web 服务器的内部 IP 地址(您必须在 URL 中使用 appname,否则简单的 IP 映射将不起作用)。
- 您更改 example.com 的 DNS 设置并添加指向 Web 服务器内部 IP 地址的 A 记录。幸运的是,网络外部的人员将无法访问您的内部网络,但他们将知道服务器的(内部私有)IP 地址,这可能是一个安全问题。
如果可以的话,我建议使用 #1。通常您可以在路由器上执行此操作(通常是您的 DNS 服务器)。
答案2
为什么人们总是把私人和公共混为一谈?内部用户连接到私人网址并没有错(http://myapp.local) 和连接到公共 URL 的外部用户 (http://myapp.example.org)。其他任何事情都只是良好做法的变通方法。