【域名解析】如何将域名解析服务器IP地址并绑定到特定端口申请SSL证书

目录

🌞一、域名解析基础知识

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

🌼1. 操作步骤

🌼2. 验证

🌞三、域名绑定服务器端口+申请ssl证书

🌼1. 方式一:操作宝塔面板

🌊域名绑定服务器端口

🌊领取免费的SSL证书

🌼2. 方式二:修改nginx文件

🌊领取免费的SSL证书

🌊域名绑定服务器端口

🍀a. 【二级域名进行绑定】

🍀b. 【一级域名的不同路径进行绑定】


🌞一、域名解析基础知识

定义:

域名解析是将域名转换为计算机可识别的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. 主机记录【域名前缀】

比如:常用主机记录及含义如下:

比如解析主机记录是@,则使用 主域名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

显示内容如下:


🌞三、域名绑定服务器端口+申请ssl证书

下面两种方式任选一种即可【推荐方式一】。

🌼1. 方式一:操作宝塔面板

🌊域名绑定服务器端口

【登录宝塔面板】->网站->添加站点

按照红框内容输入自己的域名

设置->配置文件->删除红框内容

红框内容为:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }

红框删除后加入下面代码,修改成自己的网站占用端口号->点击保存

location / { 
  proxy_pass http://127.0.0.1:端口号;
  proxy_connect_timeout 12000s;
  proxy_read_timeout 12000s;
  proxy_send_timeout 12000s;
  proxy_buffering off;
} 

后续登录主机的域名即可访问成功!


【错误记录】上述步骤没问题则略过

解决方案:点击修复完,刷新页面即可。


🌊领取免费的SSL证书

提示,虽然显示SSL证书到期88天,但是它会自动续签


🌼2. 方式二:修改nginx文件

🌊领取免费的SSL证书

注意:该方式需要手动修改nginx配置文件

操作步骤:

1. 打开阿里云->搜索数字证书管理服务->购买SSL免费证书

2. 创建SSL免费证书

3. 域名添加解析【在阿里云购买的域名会自动添加DNS解析】->创建证书文件夹,将Nginx下载到文件夹中,解压即可。

1. 打开阿里云->搜索数字证书管理服务->购买SSL免费证书

购买SSL免费证书

2. 创建SSL免费证书

3. 域名添加解析【在阿里云购买的域名会自动添加DNS解析】,其他网站购买的域名需要手动添加下域名解析【添加主机记录、记录类型、记录值】


创建证书文件夹,将Nginx下载到文件夹中,解压即可。


下载&配置nginx传送门

【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解-CSDN博客

安装vim编辑器:

centos:

yum install vim

ubuntu:

apt install vim

打开Xftp,连接进入找到nginx并进入,将下载的两个ssl文件copy进去。

⑧:修改nginx.conf配置文件

#进入nginx 
cd /etc/nginx/

查看里面有没有nginx.conf文件

ls

⑧:编辑nginx.conf配置文件

centos:

vim nginx.conf

ubuntu:

cd /etc/nginx/sites-available/your文件

然后vi newfile,将default文件内容拷过去。

替换代码 按键盘上的a,进入编辑模式

a

用键盘上的↑↓← →键移动光标!
 


将上图红框里的代码删掉,换成下面的代码
请将域名换成你们自己的域名,SSL证书也换成你们自己的

proxy_buffering off; 

upstream chatgpt-web {
    server 127.0.0.1:1002 weight=1;# 1002是端口号
}

server {
  listen 80;
  server_name www.替换的域名 替换的域名;

  return 301 https://www.域名$request_uri;
  # 上面的return语句和下面的location语句二选一即可
  #location / {
  #  rewrite ^(.*)$ https://www.替换的域名; 
  #}
}

server {
  listen 443 ssl;
  server_name www.替换的域名;
  ssl_certificate /etc/nginx/替换的SSL证书.pem;
  ssl_certificate_key /etc/nginx/替换的SSL证书秘钥.key;
  location / {
    proxy_pass http://chatgpt-web;
  }     
}

源码分析:

逐行分析这段Nginx配置文件:

  1. proxy_buffering off;关闭代理缓冲,即禁用对上游服务器响应的缓冲。

  2. upstream chatgpt-web { ... }: 定义一个名为 chatgpt-web 的上游服务器,指向本地IP为 127.0.0.1,端口为 1002。weight=1 表示权重为1,即该服务器被选中的概率为1。

  3. server { ... }: 第一个 server 块,监听端口 80(HTTP请求):

    • server_name www.替换的域名 替换的域名;: 指定服务器名,这里似乎有一处错误,应该替换为实际的域名。
    • return 301 https://www.sarpro.cn$request_uri;: 所有HTTP请求都将被重定向到相同的URL,但使用 HTTPS 协议。下面注释的部分是另一种实现重定向的方式,通过 rewrite 语句。
  4. server { ... }: 第二个 server 块,监听端口 443(HTTPS请求):

    • server_name www.替换的域名;: 指定服务器名,同样应该替换为实际的域名。
    • ssl_certificatessl_certificate_key: 分别指定 SSL 证书和私钥的路径。
    • location / { ... }: 针对所有请求的位置块,通过 proxy_pass 将请求代理到之前定义的上游服务器 chatgpt-web

总体而言,这个配置文件的目标是将所有对 www.sarpro.cn 的请求通过 HTTPS 代理到本地的 1002 端口上游服务器。

上述可替换语句的区别

rewrite ^(.*)$ https://www.sarpro.cn;return 301 https://www.sarpro.cn$request_uri; 这两个语句在Nginx配置中执行的是重定向,但它们的行为略有不同:

  1. ​rewrite ^(.*)$ https://www.sarpro.cn;
  • 这个语句使用rewrite指令将所有的请求重写到 https://www.sarpro.cn。这意味着无论原始请求的路径是什么,都会被重写为 https://www.sarpro.cn。例如,http://sarpro.cn/some/path 会被重写为 https://www.sarpro.cn,丢失了原始路径信息。
  1. ​return 301 https://www.sarpro.cn$request_uri;
  • 这个语句使用return指令执行一个永久性(301)重定向,并保留了原始请求的路径信息。$ request_uri是Nginx变量,它包含了原始请求中的URI(路径和查询字符串)。因此,这个语句会将请求重定向到 https://www.sarpro.cn,但保留了原始请求中的路径信息。例如,http://sarpro.cn/some/path 会被重定向为 https://www.sarpro.cn/some/path


鼠标中间粘贴 修改完,按ESC键保存并退出编辑模式
然后输入命令,敲回车

:wq!

检查

nginx -t


出现这个即成功!
执行这个脚本

systemctl start nginx
systemctl status nginx

当出现active (running)… 即说明安装成功

如果这里没有显示active (running)…遇到问题请参考文章传送门:

【nginx】nginx启动显示80端口占用问题的解决方案-CSDN博客


然后再执行这条命令(必须要输入这个条命令再输入下面的命令)

systemctl enable docker

如果不想后续网站打不开,就一定要执行这条命令:

systemctl restart nginx

🌊域名绑定服务器端口

🍀a. 【二级域名进行绑定】

比如让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

🍀b. 【一级域名的不同路径进行绑定】

要将不同的路径分别映射到不同的端口,比如:将sarpro.cn/chat1连接到当前服务器的1002端口,将sarpro.cn/chat2连接到当前服务器的2023端口

可以在Nginx配置文件中使用location块和proxy_pass指令。以下是一个示例配置:

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;
}

server {
    listen 80;
    server_name www.域名 域名;
    
    location / {  #必须要有,否则跳转不了
        proxy_pass http://chatgpt-web-1002/; #末尾的/有时候必须要有
    }
    location /chat1{
        proxy_pass http://chatgpt-web-1002/;
    }
    location /chat2 {
        proxy_pass http://chatgpt-web-2023/;
    }

    return 301 https://www.sarpro.cn$request_uri;
}

server {
    listen 443 ssl;
    server_name 域名;
    ssl_certificate /etc/nginx/XXX.pem; #修改成自己的SSL证书下载的nginx
    ssl_certificate_key /etc/nginx/XXX.key; #修改成自己的SSL证书下载的nginx
 
    location / {
        proxy_pass http://chatgpt-web-1002/;
    }
    location /chat1 {
        proxy_pass http://chatgpt-web-1002/;
    }
    location /chat2 {
        proxy_pass http://chatgpt-web-2023/;
    }
}

源码分析

以下是对你提供的Nginx配置的逐行详细分析:

  1. proxy_buffering off;: 关闭代理缓冲,确保实时性,不缓冲代理的响应。

  2. upstream chatgpt-web { ... }: 定义一个名为 chatgpt-web 的上游服务器块,指定了一个服务器 127.0.0.1:1002,并设置了权重为1。

  3. upstream chatgpt-web-2023 { ... }: 定义另一个名为 chatgpt-web-2023 的上游服务器块,指定了服务器 127.0.0.1:2023,并同样设置了权重为1。

  4. server { ... } 块(监听端口80,即HTTP请求):

    • listen 80;: 监听端口80,处理HTTP请求。
    • server_name www.sarpro.cn sarpro.cn;: 指定了两个服务器名,分别是带有www前缀和没有www前缀的域名。
    • location /chat1 { ... }location /chat2 { ... }: 分别定义了两个位置块,将请求路径为 /chat1 的请求代理到 chatgpt-web 上游服务器,将路径为 /chat2 的请求代理到 chatgpt-web-2023 上游服务器。
    • return 301 https://$host$request_uri;: 对于所有其他请求,执行301重定向到相同的URL,但使用HTTPS协议。
  5. server { ... } 块(监听端口443,即HTTPS请求):

    • listen 443 ssl;: 监听端口443,处理HTTPS请求。
    • server_name www.sarpro.cn;: 指定了服务器名,确保只有带有www前缀的域名能够使用HTTPS访问。
    • ssl_certificatessl_certificate_key: 分别指定SSL证书和私钥的路径。
    • location /chat1 { ... }location /chat2 { ... }: 同样定义了两个位置块,将请求路径为 /chat1 的请求代理到 chatgpt-web 上游服务器,将路径为 /chat2 的请求代理到 chatgpt-web-2023 上游服务器。

总体而言,这个配置用于将不同路径的请求代理到不同的上游服务器,并在端口80上执行HTTP到HTTPS的重定向。确保你替换SSL证书和私钥的路径,并确保上游服务器正常运行,即 127.0.0.1:1002127.0.0.1:2023

  1. 代码段一:

    location / { proxy_pass http://chatgpt-web; }

    这个代码段配置了一个反向代理,将所有 / 路径的请求代理到名为 chatgpt-web 的上游服务器。这意味着Nginx会将这些请求传递给 chatgpt-web,并将响应返回给客户端。这通常用于将请求转发到后端应用程序服务器。

  2. 代码段二:

    location / { return 301 https://www.sarpro.cn$request_uri; }

    这个代码段配置了一个HTTP 301永久重定向,将所有 / 路径的请求重定向到 https://www.sarpro.cn。这意味着所有请求都将被重定向到指定的URL,客户端将在浏览器中看到301状态码,并从新的URL获取响应。

总体而言,这两段代码的目的完全不同。第一段用于反向代理请求,而第二段用于执行重定向操作。选择使用哪一个取决于你的需求和目标。

 重新加载Nginx配置:

检查

nginx -t


出现这个即成功
执行这个脚本

systemctl start nginx
systemctl status nginx

​当出现active (running)… 即说明安装成功

然后再执行这条命令(视频没讲,这是新加进去的,必须要输入这个条命令在输入下面的命令)

systemctl enable docker

如果不想后续网站打不开,就一定要执行这条命令

再输入下面指令即可:

systemctl restart nginx

  • 49
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 33
    评论
### 回答1: 要在之前的云服务器上解绑域名,需要执行以下步骤: 1. 登录到你的云服务器上,进入域名管理器或者DNS管理器。 2. 找到你想解绑的域名,在对应的设置页面中找到“解绑”或者“删除”按钮。 3. 点击“解绑”或者“删除”按钮,系统会提示你是否确认删除该域名。 4. 确认删除域名后,系统会将该域名与当前云服务器绑定关系解除。 需要注意的是,解绑域名后,该域名不再与当前云服务器绑定,但是DNS解析记录可能还存在。如果你不再需要该域名,建议在DNS管理器中删除对应的DNS解析记录,以免产生不必要的费用。 ### 回答2: 要解绑域名与之前的云服务器的关联,可以按照以下步骤进行操作: 1.登录域名注册商的网站,找到管理域名的控制面板。 2.在控制面板中,找到域名管理选项,一般称为“域名DNS管理”或类似的名称。 3.在DNS管理页面上,找到与域名相关的记录列表,一般是A记录或CNAME记录。 4.找到之前设置的解析记录,将其删除或修改为新的服务器IP地址或主机名。如果是要解绑云服务器,则将记录删除即可。 5.点击保存或提交更改,等待DNS设置生效,通常需要几分钟到几小时的时间。 6.完成上述步骤后,域名将不再与之前的云服务器绑定。 需要注意的是,在解绑域名与云服务器之前,确保已经将相应的网站或应用迁移到新的服务器或主机上,并确保新的服务器已经正常运行。 另外,不同的域名注册商和云服务提供商的控制面板界面可能略有不同,以上步骤仅供参考,具体操作请根据相关平台提供的指南进行。若遇到问题,建议咨询所使用的域名注册商或云服务提供商的技术支持部门以获取进一步的帮助。 ### 回答3: 要解绑域名在之前的云服务器上,可以按照以下步骤进行操作: 1. 登录域名注册商的管理界面,找到相应域名的控制台页面。 2. 在域名控制台页面,找到DNS解析设置或域名解析设置选项。 3. 找到之前绑定的云服务器IP地址的记录,并将其删除或修改为空白。 4. 保存修改后的DNS解析设置。 5. 返回云服务器控制台,将之前绑定的域名或子域名解绑。 6. 保存解绑后的设置,确保生效。 经过以上步骤,域名就会成功解绑在之前的云服务器上。解绑后,该域名将不再指向该云服务器IP地址,访问该域名时将无法访问到之前的云服务器上的应用程序或网站。
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SarPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值