我到处搜索,但找不到清晰的答案,甚至找不到工程博客文章来描述公司如何将自定义域映射到其应用程序。
例如,假设我有一个Tumblr页面,其URL为www.ashley.tumblr.com。该站点允许您添加自定义域,以便访问www.Ashley.com可以使www.ashley.tumblr.com完全支持其他页面和目录。
开发此技术名称是什么?
答案 0 :(得分:1)
他们所做的事情没有一个唯一的名字-它正在设计其HTTP / Web服务器代码以处理来自任意HTTP请求Host:
标头的请求并将它们映射到其现有的Tumblr帐户。它与DNS无关,只是要求自定义域名的所有者更改其A
,AAAA
或CNAME
记录以指向与非域名所有者相同的主机,自定义域(为保证这种情况的发生,通常会在非自定义域的IP地址可能发生更改的情况下,将自定义域名设为CNAME
用于非自定义域)。
公开时间!-大多数传统的Web服务器(Apache,IIS)都是围绕“网站”的概念构建的:一个物理目录,映射到与HTTP {{ 1}}标头值(或某些通配符匹配模式)以及协议和端口绑定。例如,您将添加一个名为“ MyWebsite.com”(网站名称)的条目,该条目接受对Host:
和mywebsite.com
的请求(因为这是两个不同的www.mywebsite.com
标头值),并且也许还有更多,例如Host:
在端口443上使用HTTPS。
更现代的轻量级Web服务器和反向代理(例如nginx和Node.js'Express)无需物理目录映射,而让应用程序代码完全决定如何在应用程序逻辑内路由请求(这就是“路由器”和“ /或“解复用器”(demux)在Web应用程序术语中使用)-以需要自己处理所有逻辑为代价(公平地说,这些Web服务器带有必要的工具,可以像老式的常规Web一样轻松配置它们) -servers,这不是默认设置。
...但是优点是您可以使其完全像您想要的那样工作。
用伪代码编写的程序可能看起来像这样:
secure.mywebsite.com
在 reality 中,考虑到它们的大小和规模,很可能是硬件负载平衡器或某些其他轻量级前端服务中的一些自定义逻辑-始终具有积极的缓存(数据库查找非常昂贵!)