我在局域网中设置了一个供本地使用的 DNS 服务器。该服务器可以解析 IP 地址,因此当我ping mypc.company
从 IP 地址 192.168.1.34 收到成功回复时。
问题
我已经在一台机器 (192.168.1.34) 上的 Tomcat 应用程序服务器上部署了一个应用程序 (myApp)。我可以通过以下 URL 访问它:
http://mypc.company:8080/myApp
http://192.168.1.34:8080/myApp
问题
有没有什么方法可以设置域名(或任何技术),以便当我导航到时www.myApp.com
,它会直接带我到http://192.168.1.34:8080/myApp
?
答案1
是也不是。您可以注册一个域名并使其指向 RFC1918 空间(例如以 192.168.xx 开头的地址)。您不能使用 DNS 或域名注册来更改端口,因此您无法使用 DNS 或域名注册将 LAN 上的请求从端口 80 定向到端口 8080 - 您需要在服务器或服务器与客户端之间的路由器上拦截该请求以映射端口。
或者,您可以在端口 80 上设置另一个 Web 服务,该服务重定向到端口 8080 以回答主要查询 - 如果您尝试同时实现内部和外部可达性,这可能是最简单的答案。
答案2
是的,你可以,而且很简单
您有一个正在付费的真实域名:
登录您域名托管网站上的控制面板并访问 DNS。管理转发并设置子域名(带屏蔽)。
领域 公司 子域名转发至类型 myApp http://company.com:8080/myApp 带掩码转发
您正在创建一个 DNS 定义,其中将包含已定义的调用 myApp.company.com它将自动转发至 http://公司:8080/myApp。 这掩蔽当定义隐藏在 URL 中时,否则用户将要求myApp.company.com但当你加载页面时它会看到 https://公司:8080/myApp这不是你想要的。
您没有域名。
您在本地主机上执行所有操作。
修改本地 DNS 文件:关联
目录:C:\Windows\System32\drivers\etc
文件: 主持人要修改此文件,您必须具有管理权限。在此文件的属性中,您可以更改权限以修改此“只读”文件。
然后只需将此行:127.0.0.1 localhost 更改
为如下内容:127.0.0.1 greatapp.mytestlocal.com
localhost 就是 127.0.0.1 的 ip 地址,是专门为 localhost 设计的唯一 ip。
答案3
仅使用 DNS 无法将app.example.com
(实际上是http://app.example.com:80/
)重定向到。问题很明显:虽然您可以解析到,但您要重定向到的服务并未在端口 80 或甚至根路径()上侦听。http://192.168.1.2:12345/some/path
app.example.com
192.168.1.2
/
因此,我们需要一些东西来监听端口 80,并将用户重定向到正确的端口和路径。理论上,任何 Web 服务器都可以做到这一点。我不会在这里深入讨论基于名称的虚拟主机,但在重定向多个服务时,它们可能是必要的。
常规 Web 服务器可以提供此 HTML 文件来重定向用户:
<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh" content="0; url=http://app.example.com:12345/some/path">
</head>
<body>
<h1>Redirecting...</h1>
</body>
</html>
更复杂的设置可以使用 HTTP 标头执行重定向,例如在 Apache 上:
Redirect permanent / http://app.example.com:12345/some/path
Web 服务器不必在同一台机器上运行。它可以重定向到任何有效的 URL。