我试图了解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。
然而,由于没有在这方面的经验,我似乎无法找到完全解释我所寻找的相关文件或网站。
答案 0 :(得分:1)
首先,要明确一点:当您访问http://example.com
这样的网页时,您的网络浏览器实际上是向example.com:80
发出请求。这是透明地完成的,因为端口80是HTTP协议的标准端口。如您所知,您可以通过将其附加到URL中的域名来请求非标准端口:http://example.com:888/
。
不幸的是,您不能拥有以某种方式包含非标准端口的域名“别名” - 如果您未指定端口,您的浏览器将始终尝试使用端口80.
一种解决方案是使用代理 - nginx,apache,lighttpd,其他人都可以这样做。
您的想法是设置一个正在侦听主机端口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。你需要做一些研究来根据你的情况定制这个解决方案。