将子域重定向到 ip:port

Redirecting subdomain to ip:port

你知道在计算机编程中,完美离完美有多远吗?

好吧,我的服务器 运行 在端口 8080 上。我使用 iptables 进行了所需的重定向,将 80 重定向到 8080。 所以当我去www.domain.com时,效果很好

我在端口 8081 上有第二台服务器 运行。 当我转到 www.domain.com:8081 时,它运行良好。

一切正常!但是,嘿,记住我的第一条规则......

现在,我想使用 www.sub.domain.com(或 www.domain。com/sub,我不在乎)访问我的第二个站点 基本上,我希望 www.sub.domain.com(或 www.domain.com/sub)重定向到 www.domain.com:8081

从现在开始,我的理解是,如果我的服务器上有第二个IP,那就很容易了。但这不是一个好的解决方案,因为我可能想要 100 个子域,而且我不想为此付费。

有什么想法吗?

我建议您为网络服务器安装反向代理。 Apache 和 Nginx 支持这个;

例如,您的网络服务器侦听端口 80,并且根据请求的域(在 nginx 的服务器块中,在 apache 的虚拟主机中),您可以要求他在内部重定向到特定的 url:port。

对于 Apache:(参见 "Using Virtual_host and mod_proxy together") https://httpd.apache.org/docs/2.4/vhosts/examples.html

对于 nginx: https://www.nginx.com/resources/admin-guide/reverse-proxy/

我认为您不需要 iptables 或反向代理来实现这一切。只需配置您的网络服务器以正确侦听默认端口并使用虚拟主机让服务器正确解析请求。

在 Apache 上阅读此部分 https://httpd.apache.org/docs/2.4/vhosts/,内容相当少。 想象一下,将来您还需要监听 https,添加证书等。当使用反向代理时,在您的情况下会变得混乱和不必要。