想要app(服务器:端口)拥有友好别名 - 了解主机别名/ DNS / A记录/ CNAME

时间:2017-08-24 14:40:54

标签: dns teamcity alias hostname octopus

我试图了解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。

然而,由于没有在这方面的经验,我似乎无法找到完全解释我所寻找的相关文件或网站。

1 个答案:

答案 0 :(得分: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。你需要做一些研究来根据你的情况定制这个解决方案。