菜鸟科技网

域名别名怎么设置?

  1. DNS 别名 (CNAME 记录):这是最常用、最标准的“别名”方式,它将一个域名(blog.example.com)指向另一个域名(www.myblogsite.com),当用户访问 blog.example.com 时,DNS 服务器会告诉他们去访问 www.myblogsite.com,整个过程是透明的。
  2. 服务器/主机头别名:这种方式是在同一个域名下,让一个主机(服务器)响应多个不同的域名或子域名,让同一个网站同时响应 example.comwww.example.com,这通常在网站服务器配置中完成。

下面我将详细解释这两种方法,并提供具体步骤。

域名别名怎么设置?-图1
(图片来源网络,侵删)

使用 DNS 别名 (CNAME 记录)

这是实现“域名A指向域名B”的标准方法,常用于将子域名指向另一个主域名、指向使用 SaaS 服务的平台(如 Shopify, WordPress.com, GitHub Pages)或指向您的主域名。

核心原理: alias.yourdomain.com (CNAME记录) -> www.anotherdomain.com

优点:

  • 灵活:可以轻松更改目标域名,无需修改所有使用别名的服务。
  • 标准:符合 DNS 协议,是互联网上的通用做法。

缺点:

域名别名怎么设置?-图2
(图片来源网络,侵删)
  • 不能用于根域名:CNAME 记录不能直接用于顶级域名(如 yourdomain.com),只能用于子域名(如 www.yourdomain.com)。
  • 需要额外配置:目标域名必须有自己的 DNS 记录(通常是 A 记录),并且其服务器需要支持虚拟主机。

操作步骤 (以 Cloudflare 和阿里云为例)

通用步骤:

  1. 登录您的 DNS 服务商管理后台:GoDaddy, Namecheap, Cloudflare, 阿里云 DNS, 腾讯云 DNSPod 等。
  2. 选择您要添加别名的域名
  3. 找到“DNS 记录”或“解析”管理页面
  4. 添加一条新的 CNAME 记录
    • 类型:选择 CNAME
    • 主机名/记录类型
      • 如果您要为 www.yourdomain.com 做别名,就输入 www
      • 如果您要为 blog.yourdomain.com 做别名,就输入 blog
      • 如果您要为整个 yourdomain.com 做别名(不推荐,通常用方法二),可以输入 或留空(具体看服务商规则)。
    • 记录值/目标:输入您要指向的完整目标域名www.anotherdomain.com注意:末尾的句号 是标准的,但现在大多数服务商会自动处理,可以省略。
    • TTL (生存时间):保持默认值即可(如 Automatic, 1 Hour)。
  5. 保存记录

等待生效: DNS 记录更改后,全球 DNS 需要时间来更新,这个过程称为“传播”,通常需要几分钟到 24 小时,但大部分情况下几分钟内就会生效,您可以使用 dignslookup 命令来验证。

示例 (使用 nslookup 命令):

# 查询 yourdomain.com 的 CNAME 记录
nslookup -type=CNAME blog.yourdomain.com

如果配置成功,它会返回您设置的目标域名,www.anotherdomain.com

域名别名怎么设置?-图3
(图片来源网络,侵删)

服务器主机头别名

这种方法用于让同一个网站响应多个域名,例如同时让 example.comwww.example.com 访问同一个内容,它是在网站服务器层面配置的,与 DNS 无关(DNS 只需要确保两个域名都指向服务器的 IP 地址即可)。

核心原理: 服务器收到对 www.example.com 的请求后,发现这个请求的“主机头”(Host Header) 是 www.example.com,于是就把网站内容返回给用户,它知道 www.example.comexample.com 指向的是同一个网站文件。

前提条件:

  1. 两个域名(example.comwww.example.com)的 A 记录都指向同一个服务器的 IP 地址
  2. 您拥有该服务器的管理权限(或虚拟主机控制面板权限)。

操作步骤 (以 Nginx 和 Apache 为例)

DNS 配置 (基础步骤) 确保您的 DNS 设置正确:

  • example.com 的 A 记录指向服务器 IP 0.2.1
  • www.example.com 的 A 记录也指向同一个服务器 IP 0.2.1

服务器配置

A) Nginx 配置 Nginx 的配置非常简洁,您可以在一个 server 块中使用 server_name 指令列出所有域名。

# 在您的 Nginx 配置文件中 (/etc/nginx/sites-available/yourdomain)
server {
    listen 80;
    # 列出所有要指向同一个网站的域名
    server_name example.com www.example.com;
    # 网站根目录
    root /var/www/html;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
}

配置完成后,重启 Nginx:

sudo systemctl reload nginx

B) Apache 配置 Apache 的配置也很常见,通常在虚拟主机文件中进行。

# 在您的 Apache 配置文件中 (/etc/apache2/sites-available/yourdomain.conf)
<VirtualHost *:80>
    # ServerName 是主域名
    ServerName example.com
    # ServerAlias 是所有别名
    ServerAlias www.example.com
    # 网站根目录
    DocumentRoot /var/www/html
    # 其他配置...
    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

配置完成后,启用站点并重启 Apache:

sudo a2ensite yourdomain.conf
sudo systemctl reload apache2

总结与选择

特性 DNS 别名 服务器主机头别名
用途 将一个域名完全指向另一个域名 让一个网站响应多个域名
实现方式 在 DNS 服务商后台添加 CNAME 记录 在 Web 服务器配置中添加 server_nameServerAlias
适用场景 - 子域名指向 SaaS 平台 (Shopify, GitHub Pages)
- 简单地重定向流量
- 统一主域名和 www 前缀
- 同一服务下的多个子域名共享内容
根域名 不支持 支持
优点 灵活,易于管理目标 服务器端处理,更直接,SEO友好(避免重复内容)
缺点 不能用于根域名 需要服务器管理权限,目标 IP 必须固定

  • 如果你想让 shop.yourdomain.com 指向 www.bigstore.com,用 DNS 别名
  • 如果你想让 www.yourdomain.comyourdomain.com 访问同一个网站,用 服务器主机头别名
分享:
扫描分享到社交APP
上一篇
下一篇