目录
🌷一、域名解析基本概念
🌼1. 定义
🌼2. 域名解析类型
🌷二、域名解析服务器IP地址
🌼1. 操作步骤
🌼2. 验证
🌷一、域名解析基础知识
🌼1. 基本概念
定义:
域名解析是将域名转换为计算机可识别的IP地址的过程。因为计算机在互联网上使用IP地址进行通信,而人们更容易记住具有意义的域名,所以域名解析起到了连接人类和计算机之间的桥梁作用。
简单示例:用户使用域名为www.example.com,当用户在浏览器中输入该域名时,系统会通过域名解析将其转换为相应的服务器IP地址如149.88.68.125,以便找到正确的服务器。
1. 记录类型
- A-将域名指向一个IPV4地址【用的最多】
- CNAME-将域名指向另外—个域名
- AAAA-将域名指向一个IPV6地址
- NS-将子域名指定其他DNS服务器解析
- MX-将域名指向邮件服务器地址
- SRV-记录提供特定的服务的服务器
- TXT-文本长度限制512,通常做SPF记录(反垃圾邮件)
- CAA-CA证书颁发机构授权校验
- 显性URL-将域名重定向到另外—个地址
- 隐性URL-与显性URL类似,但是会隐藏真实目标地址
2. 主机记录【域名前缀】
比如:常用主机记录及含义如下:
- www 表示域名www.example.cn
- @ 表示主域名example.cn
- * 泛解析,表示满足格式*.example.cn的所有域名(记录类型为"显性URL"时,不允许设置泛解析)
- mail 表示域名mail.example.cn,常用于邮箱业务的解析设置
- m 表示域名m.example.cn,常用于手机网站
- 二级域名如abc.example.cn,则填写abc
- 多级域名如ab.cd.ef.example.cn ,则填写ab.cd.ef
比如解析主机记录是@,则使用 主域名example.cn 等价于访问www.example.cn
3. 记录值
一般是服务器的IP地址,如149.88.68.125
域名解析过程如下:
- 用户在浏览器中输入 www.example.com。
- 操作系统首先检查本地缓存中是否有该域名对应的IP地址,如果有,就直接使用缓存中的IP地址。
- 如果本地缓存没有该域名的记录,操作系统会发送一个DNS请求到本地DNS服务器。
- 本地DNS服务器如果有缓存该域名对应的IP地址,则返回给操作系统。否则,它会向根DNS服务器发出请求。
- 根DNS服务器返回顶级域(TLD)服务器的IP地址。
- 本地DNS服务器向TLD服务器发出请求,获取下一级域的DNS服务器的IP地址。
- 本地DNS服务器向下一级域的DNS服务器发出请求,直到最终获取到www.example.com对应的IP地址。
- 本地DNS服务器将获取到的IP地址返回给操作系统,并同时缓存该记录。
- 操作系统使用获取到的IP地址与服务器建立连接,开始访问网站。
这样,域名解析使得用户只需输入易记的域名,而不必记住复杂的IP地址。
🌷二、域名解析服务器IP地址
🌼1. 操作步骤
【域名解析添加记录】
说明:
- 主机记录一般填写@、www
- 记录类型填A
- 记录值填写服务器IP地址
比如解析主机记录是@,则使用 主域名example.cn 等价于访问www.example.cn
添加结果如下:
🌼2. 验证
本地使用win+R输入cmd进入CMD.exe窗口
输入
ping 域名
查看是否返回主机信息。
示例
使用了域名sarpro.cn绑定了服务器【IP为:149.88.68.125】
cmd输入
ping sarpro.cn
显示内容如下:
🌷三、域名解析深入
🌼1. 不同的子域名
比如让chat1.sarpro.cn指向服务器端口1002,而让chat2.sarpro.cn指向同一服务器端口1008。
操作步骤:
1. 域名解析添加记录
2. 在
/etc/nginx/sites-available/
目录中,可以创建一个新的配置文件,例如chat
,然后在sites-enabled
目录中创建符号链接,将其链接到sites-available
目录中的配置文件。以下是具体步骤:
1. 创建新的配置文件 /etc/nginx/sites-available/chat
:
server { listen 80; server_name chat1.sarpro.cn; location / { proxy_pass http://127.0.0.1:1002; # 将请求代理到端口 1002 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 X-Forwarded-Proto $scheme; }}server { listen 80; server_name chat2.sarpro.cn; location / { proxy_pass http://127.0.0.1:1008; # 将请求代理到端口 1008 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 X-Forwarded-Proto $scheme; }}
2. 创建符号链接:
sudo ln -s /etc/nginx/sites-available/chat /etc/nginx/sites-enabled/
3. 验证 Nginx 配置是否正确:
sudo nginx -t
如果没有错误,重新加载 Nginx:
sudo systemctl reload nginx
🌼2. 使用不同的端口
比如让www.sarpro.cn/chat1指向服务器端口1002,而让www.sarpro.cn/chat2指向同一服务器端口1008。
操作步骤:
1. 域名解析添加记录
2. 在
/etc/nginx/sites-available/
目录中,可以创建一个新的配置文件,例如chat.
以下是具体步骤:
1. 创建新的配置文件 /etc/nginx/sites-available/chat
:
proxy_buffering off;upstream chatgpt-web-1002 { server 127.0.0.1:1002 weight=1; #修改成自己的端口}upstream chatgpt-web-2023 { server 127.0.0.1:2023 weight=1;}upstream chatgptmj-web-1080 { server 127.0.0.1:1080 weight=1;}upstream chatgptmj-web-7068 { server 127.0.0.1:7068 weight=1;}server { listen 80; server_name www.sarpro.cn sarpro.cn; location /chat1 { proxy_pass http://chatgpt-web-1002/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /chat2 { proxy_pass http://chatgpt-web-2023/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /chat3 { proxy_pass http://chatgptmj-web-1080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /chat4 { proxy_pass http://chatgptmj-web-7068/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://chatgptmj-web-1080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } #return 301 https://www.sarpro.cn$request_uri; return 301 https://$host$request_uri;}server { listen 443 ssl; server_name www.sarpro.cn; ssl_certificate /etc/nginx/www.sarpro.cn.pem; #修改成自己的 ssl_certificate_key /etc/nginx/www.sarpro.cn.key; #修改成自己的 location /chat1 { proxy_pass http://chatgpt-web-1002/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /chat2 { proxy_pass http://chatgpt-web-2023/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /chat3 { proxy_pass http://chatgptmj-web-1080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /chat4 { proxy_pass http://chatgptmj-web-7068/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://chatgptmj-web-1080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }}