0

我试图了解 Windows、网络和域。

我目前有一个服务器 - svr。这是我的域名 companyname.co.uk

我可以连接到服务器并 ping svr 和 svr.companyname.co.uk。

在这台服务器上,我有许多可以访问 Web 的应用程序;TeamCity、Octopus 等。我们目前通过浏览到 svr:xxxx 来连接它们,其中 xxxx 是 Web 应用程序主机的端口(对于 TC,http://svr:9090/ )

我想创建友好别名' - 例如 teamcity.companyname.co.uk 将指向 svr:9090,octopus.companyname.co.uk 将指向 svr:8090。

但是,在这方面没有经验,我似乎无法找到完全解释我正在寻找的相关文件或网站。

4

1 回答 1

1

首先,要明确一点:当您访问类似 的网页时http://example.com,您的网络浏览器实际上是在向example.com:80. 这是透明的,因为端口 80 是 HTTP 协议的标准端口。如您所知,您可以通过将其附加到 URL 中的域名来请求非标准端口:http://example.com:888/.

不幸的是,您不能拥有一个包含非标准端口的域名“别名”——如果您不指定端口,您的浏览器将始终尝试使用端口 80。

一种解决方案是使用代理—— nginxapachelighttpd和其他都可以做到这一点。

这个想法是您设置了一个代理服务器,该服务器正在侦听主机上的端口 80。它等待连接,然后根据某些规则将这些连接转发到不同的服务器(在同一主机上或不同的主机上)。因此,例如,您可能有如下所示的规则:

IF host = teamcity.companyname.co.uk THEN forward to teamcity:9090
IF host = octopus.companyname.co.uk THEN forward to octopus:8090

这些规则的语法在不同的代理配置之间差异很大,因此这只是一个示例。

请注意,这不是重定向 - 用户的浏览器连接到teamcity.companyname.co.uk所有请求。代理将请求发送到不同的服务,并将任何响应转发回“幕后”客户端。

这些代理配置可能会变得相当复杂。例如,如果您的 teamcity 应用程序提供一个带有指向的链接的页面http://teamcity:9090/path/to/page怎么办?如果用户单击该链接,他们的浏览器将会失败。幸运的是,可以将代理配置为动态重写这样的 URL。您需要进行一些研究以根据您的情况定制此解决方案。

于 2017-08-24T14:52:28.023 回答