如何将 DNS 别名转发到主机名:端口?

如何将 DNS 别名转发到主机名:端口?

可能重复:
如何使用 DNS 将域名重定向到我的服务器上的特定端口

我的 Web 应用程序正在 myserver.mydomain:10000 上运行,我想使其作为 mywebapp.mydomain 在内部网上可用。

阅读将端口转发到另一个 IP/端口,我已经研究过 rinetd,但我不完全了解如何实现我的目标:

  1. 在名称服务器上创建 cname 别名 mywebapp --> myserver
  2. 在 myserver 上运行 rinetd,将端口 80 重定向到 10000?!?

这将重定向全部http 流量。

我的理解似乎有些欠缺。有人能帮助我吗?

答案1

如果您不想创建另一个 IP,那么您所能做的就是在主 IP 上安装一个反向 http 代理和一个基于名称的虚拟主机,以使用 mod_proxy 路由流量。

以下是使用 apache 执行此操作的方法,几乎​​任何 http 服务器都可以做到这一点,其他流行的替代方案是 squid、nginx、lighthttpd 等。

Listen IP_ADDR:80
NameVirtualHost IP_ADDR:80

<VirtualHost IP_ADDR:80>
  ServerName  yourname.yourdomain

  ProxyPass        / http://localhost:10000/
  ProxyPassReverse / http://localhost:10000/

</VirtualHost>

答案2

DNS 仅将主机名映射到 IP 地址,它对端口一无所知,也无法做任何事情。

满足您需求的解决方案可能是使用 NAT 路由器/防火墙将您的公共 IP 的端口 80 转发到内部服务器 IP 的端口 10000。

答案3

我假设您只想重定向一个网站,并且您已经在端口 80 上运行其他网站?如果是这样,并且您没有使用 HTTPS (SSL),那么您可以设置 Apache 来处理此域(如上所述),或者您可以教 Apache 自己进行转发,到端口 10000。

我知道您正在使用什么服务器操作系统或 http 服务器...所以无法提供更多帮助。

相关内容