我的 Web 应用程序正在 myserver.mydomain:10000 上运行,我想使其作为 mywebapp.mydomain 在内部网上可用。
阅读将端口转发到另一个 IP/端口,我已经研究过 rinetd,但我不完全了解如何实现我的目标:
- 在名称服务器上创建 cname 别名 mywebapp --> myserver
- 在 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 服务器...所以无法提供更多帮助。