如何在一台服务器上使用相同的端口运行多个应用程序?

如何在一台服务器上使用相同的端口运行多个应用程序?

我有一个 vServer,我想在端口 443 上托管一个 VPN 服务器,我还想在端口 443 上托管一个使用 SSL/TLS 的 http 服务器。该服务器有不同的域指向它。所以我想让 example.com:443 提供 http 内容,我想使用 vpn.example.com:443 访问 VPN 服务器

这可能吗,它是如何工作的以及我该如何配置它?

答案1

域名在这里不相关。网络堆栈仅查看 IP 地址和端口号。这两个决定哪个进程接收传入的数据包。

只有当两个不同的进程监听不同的 IP 地址时,才能让它们在同一端口上运行。因此,如果 example.com 转换为 10.0.1.1,而 vpn.example.com 转换为 10.0.1.2,则一个进程可以监听 10.0.1.1:443,而另一个进程可以监听 10.0.1.2:443。

让两个进程监听相同的地址/端口组合(例如 10.0.1.1:443)是行不通的。

当然,这同样适用于 IPv6。

答案2

将 vCenter 移至其他端口,VPN 端口也必须位于其他端口。管理 nginx 以位于 443 端口,并创建反向代理作为环回不同端口上的两个服务。您确定您提到的 443 上的 VPN 服务是通过 http 协议运行的吗?还是其他协议?如果是这样,我会考虑使用流选项的反向代理作为潜在解决方案。但也许将 VPN 放在单独的端口上可能是个好的解决方案。

相关内容