【域名解析】如何将域名指向对应服务器IP

目录


🌷一、域名解析基础知识

🌼1. 基本概念

定义:

域名解析是将域名转换为计算机可识别的IP地址的过程。因为计算机在互联网上使用IP地址进行通信,而人们更容易记住具有意义的域名,所以域名解析起到了连接人类和计算机之间的桥梁作用。

简单示例:用户使用域名为www.example.com,当用户在浏览器中输入该域名时,系统会通过域名解析将其转换为相应的服务器IP地址如149.88.68.125,以便找到正确的服务器。

1. 记录类型

  1. A-将域名指向一个IPV4地址【用的最多】
  2. CNAME-将域名指向另外—个域名
  3. AAAA-将域名指向一个IPV6地址
  4. NS-将子域名指定其他DNS服务器解析
  5. MX-将域名指向邮件服务器地址
  6. SRV-记录提供特定的服务的服务器
  7. TXT-文本长度限制512,通常做SPF记录(反垃圾邮件)
  8. CAA-CA证书颁发机构授权校验
  9. 显性URL-将域名重定向到另外—个地址
  10. 隐性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

域名解析过程如下:

  1. 用户在浏览器中输入 www.example.com。
  2. 操作系统首先检查本地缓存中是否有该域名对应的IP地址,如果有,就直接使用缓存中的IP地址。
  3. 如果本地缓存没有该域名的记录,操作系统会发送一个DNS请求到本地DNS服务器。
  4. 本地DNS服务器如果有缓存该域名对应的IP地址,则返回给操作系统。否则,它会向根DNS服务器发出请求。
  5. 根DNS服务器返回顶级域(TLD)服务器的IP地址。
  6. 本地DNS服务器向TLD服务器发出请求,获取下一级域的DNS服务器的IP地址。
  7. 本地DNS服务器向下一级域的DNS服务器发出请求,直到最终获取到www.example.com对应的IP地址。
  8. 本地DNS服务器将获取到的IP地址返回给操作系统,并同时缓存该记录。
  9. 操作系统使用获取到的IP地址与服务器建立连接,开始访问网站。

这样,域名解析使得用户只需输入易记的域名,而不必记住复杂的IP地址。

🌷二、域名解析服务器IP地址

🌼1. 操作步骤

【域名解析添加记录】

说明:

  1. 主机记录一般填写@、www
  2. 记录类型填A
  3. 记录值填写服务器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;
    }
}

版权声明:本文为博主作者:SarPro原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/m0_57532432/article/details/135855421

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2024年2月19日
下一篇 2024年2月19日

相关推荐