引言
<b>二级域名</b>一般用于划分已申请到的顶级域名(如a.com、a.cn等),用来区分不同功能的站点和网址。例如某人申请到了一个顶级域名:abc.com,他可以将abc.com划分为下列不同的二级域名:
- tools.abc.com 工具类网站;
- games.abc.com 游戏类网站;
- mails.abc.com 用于邮箱服务器;
- ……
我以腾讯云为例大致讲解在获取顶级域名之后,二级域名DNS解析以及云服务器中间件的配置方法。
基本原理
为了更清晰的表述二级域名的大致解析方式和流程,我画了一个示意图(如上所示)。二级域名解析的大致流程为:
1、客户端发出访问页面 http://a.abc.com/
的请求;
2、DNS服务器(域名服务器)将URL http://a.abc.com/
解析为服务器的IP地址 a.a.a.a
;
3、客户端请求经数据链路转发至 a.a.a.a
地址对应服务器;
4、服务器持续监听80端口,在接到客户端请求后,代理服务器根据请求数据包中的目的URL(a.abc.com
还是 b.abc.com
),根据反向代理规则将不同目的URL地址的请求转发至对应端口。
其中,第2步需要完成二级域名和顶级域名在DNS服务器中的解析、映射;第4步需要完成服务器中反向代理的配置。
配置过程 / 方法
域名解析配置
进入腾讯云“DNS解析DNSPod”页面,点击“添加域名”按钮,输入顶级域名(abc.com)。确认后点击已增加的域名后面的“解析”按钮。
点击“添加记录”,然后设置顶级域名的DNS映射。
主机记录:即域名前缀,设置为 @
即直接解析主域名。
A 记录:地址记录,用来指定域名的 IPv4 地址(例如 8.8.8.8
),如果需要将域名指向一个 IP 地址(外网地址),就需要添加 A 记录。
所以此处设置域名前缀为 @
,设置记录值为服务器IP地址,点击确认即可。
二级域名映射设置方式完全相同,仅需将主机记录修改为希望使用的域名前缀即可。
至此,域名解析部分配置完成。现在已经实现了从顶级域名、二级域名到服务器IP地址的映射。
服务器端配置
我所使用的云服务器中的中间件为Nginx,修改Nginx的配置文件即可将不同host转发至不同端口。
腾讯云服务器中,Nginx的配置文件路径为:/www/server/nginx/conf/nginx.conf
在此文件增加反向代理配置:
server {
listen $port$;
server_name $a.abc.com$;
# 反向代理配置
location /
{
proxy_pass Protocol://your_domain:port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
}
}
配置完成后,使用SSH连接云服务器,输入命令 nginx -t
测试配置是否有误;返回successs后,使用命令 nginx -s reload
重载中间件配置即可生效。
至此就完成了二级域名解析的全部配置工作。