
无需加好友免费技术支持
前几天,我偶尔在公司分享大会上讨论DNS,网站域名营运商所提供的忽然提及URL将特定网站域名转发到有关网站域名同时可表明或潜藏在搜索框中目标URL。经过长时间争执,许多人觉得这是事实DNS这个功能由服务器自身给予。大家都知道,DNS服务器会提供网站域名剖析作用,URL转发是HTTP下边详细描述一下我个人的完成设计原理全过程。
大部分网站域名营运商都是会给予它URL转发作用(中国必须备案审核)分成表明和掩藏二种。在推进环节中,让我们分成2个阶段,即DNS和HTTP。一个URL转发记录相匹配DNS2个服务器记录是A或ACNAME记录和TXT记录。A或CNAME记录简述自己的HTTP服务器用以后处理工艺URL将这一记录转发给消费者。TXT客户在操作面板填报的记录URL转发总体目标地址信息种类。DNS剖析结束后交给HTTP能用一切服务器端语言表达撰写服务器。
自然环境表明
电脑操作系统:CentOS 6(Vagrant)DNS服务器:BIND-9.8.2 (yum)HTTP服务器端:NGINX PHP-FPM-5.3 (yum)检测网站域名:ninjacn.comDNS服务器
DNS服务器由BIND构建,根据yum立即组装就可以。以下属于大伙儿接受的关键配备:
提取/etc/named.conf
提取
/var/named/ninjacn.com.zone
共分析2条URL转发(u0和u1)他的A记录相匹配于自己的A记录HTTP服务器,TXT记录相匹配真正URL转发总体目标详细地址信息,TXT记录由两个部分组成|隔开,左边为URL种类(表明或掩藏),右边为真正总体目标详细地址。
HTTP服务器端
电脑浏览器进行有关网站域名要求后,我们自己服务器(DNS该要求会由服务器A记录解决。接纳要求后,服务器将依据主机头往前挪动DNS对应的服务器查看TXT记录,获得DNS记录后,依据种类(0意味着表明URL,1意味着掩藏URL)回到HTTP回应信息。
当为非0时,HTTP服务器端回到301或302状态码,响应头Location是具体URL总体目标详细地址。当为非1时,HTTP服务器端回到包括iframe的HTML信息。iframe的src属性是具体URL总体目标详细地址。实际完成见下。PHP编码。
Nginx配置文档
每一个需求都全部要求server块解决。
PHP完成转发
表明url?—?u0.ninjacn.com
HTTP状态码200,不转发,真正网站链接在iframe的src属性特定。
掩藏URL?—?u1.ninjacn.com
HTTP状态码为302,总体目标详细地址在响应头Location属性。
文中节选自medium.com,编码方法编辑整理