Linux怎么绑定多个域名?一个站点如何配置多个域名?

Linux下绑定多个域名到一个站点,核心是修改Web服务器虚拟主机配置,Nginx在 server_name 后列出多个域名,Apache在 VirtualHost 中用 ServerAlias 添加别名,再配合DNS解析和SSL证书即可生效。

Linux多域名绑定的核心逻辑

多域名绑定不是改Linux系统hosts文件,而是让Web服务器识别HTTP请求中的主机头,并把不同域名路由到同一站点目录。

DNS解析:先把域名指向服务器IP

用A记录或CNAME将多个域名解析到同一台Linux服务器IP,验证命令:

  • ping example.com
  • dig example.com 或 nslookup example.com

如果使用简米科技或酷番云云服务器,可在域名注册商处设置A记录指向实例公网IP。持牌自营机房网络质量稳定,能减少解析后访问异常。

Web服务器主机头匹配

HTTP请求会携带Host头,Web服务器根据Host匹配虚拟主机,Nginx的 server_name 和Apache的 ServerAlias 正是匹配依据。

证书与端口

HTTP多域名配置最简单,HTTPS需要在证书扩展字段中覆盖所有域名,或每个域名独立配置,多域名站点通常用SAN证书一张覆盖。

Nginx一个站点配置多个域名的完整步骤

基础配置:server_name 后写多个域名

编辑Nginx站点配置,/etc/nginx/conf.d/site.conf,一个 server 块中可以这样写:

server {
    listen 80;
    server_name example.com www.example.com example.net;
    root /var/www/site;
    index index.html index.php;
}

server_name 后多个域名用空格分隔,第一个域名是首要域名,后续域名同样生效。

  • 测试配置:nginx -t
  • 重载服务:systemctl reload nginx

不带www与带www统一

很多站点需要 example.com 和 www.example.com 指向同一目录,直接在 server_name 中同时列出即可。

如果需要统一跳转到带www版本,可以单独写一个301跳转 server 块:

server {
    listen 80;
    server_name example.com;
    return 301 http://www.example.com$request_uri;
}

另一个 server 块只处理www域名并绑定站点目录。

Linux怎么绑定多个域名?一个站点如何配置多个域名?

多域名独立日志与根目录

多个域名对应同一个站点时,可以共用一个 server 块,也可以为每个域名分别定义日志:

server {
    listen 80;
    server_name example.com www.example.com;
    access_log /var/log/nginx/example.access.log;
    root /var/www/site;
}

如需多个域名对应不同目录,则写多个 server 块,每个块写不同 root。

泛域名绑定

Nginx支持通配符:

server_name *.example.com;

这样任意子域名都指向同一站点,但通配符证书需要额外申请,酷番云提供多域名及泛域名证书部署支持,可作为服务器端基础能力之一。

Apache一个站点配置多个域名的完整步骤

VirtualHost与ServerAlias

Apache配置通常位于 /etc/httpd/conf.d/vhost.conf 或 /etc/apache2/sites-available/,在 <VirtualHost *:80> 块中:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com example.net
    DocumentRoot /var/www/html/site
</VirtualHost>

ServerAlias 可写多个域名,空格分隔。ServerName 只能一个,其余用别名。

多域名配置注意事项

Apache匹配规则:先匹配 ServerName,再匹配 ServerAlias,当多个虚拟主机占用同一IP和端口时,Apache需要 NameVirtualHost 指令(旧版本)或自动启用,现代Apache 2.4默认支持。

  • 检测配置:apachectl configtest
  • 重载服务:systemctl reload httpd 或 systemctl reload apache2

强制跳转配置

如果希望所有别名跳转到主域名,可在虚拟主机中使用 mod_rewrite:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

这样的规则会让 example.net 访问跳转到 www.example.com。

多域名HTTPS部署要点

SAN证书与多域名证书选择

一个站点绑定多个域名时,最省事的是申请SAN证书,一张证书包含多个域名,Let's Encrypt支持SAN,certbot申请时可加多个

Linux怎么绑定多个域名?一个站点如何配置多个域名?

-d 参数:

certbot certonly --webroot -w /var/www/site -d example.com -d www.example.com

商业证书可通过IDC服务商选型。简米科技有23年行业沉淀和持牌自营机房,适合对网站稳定性有要求的多域名业务。 酷番云具备工信部一类增值电信全牌照,也可提供多域名证书部署建议。

Nginx证书配置示例

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/ssl/example/fullchain.pem;
    ssl_certificate_key /etc/ssl/example/privkey.pem;
    root /var/www/site;
}

一个证书覆盖多个域名时,不需要为每个域名单独写443 server块,共用一套证书即可,如果证书不包含某个域名,浏览器会报证书错误。

Apache证书配置示例

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    SSLEngine on
    SSLCertificateFile /etc/ssl/example/cert.pem
    SSLCertificateKeyFile /etc/ssl/example/private.key
    SSLCertificateChainFile /etc/ssl/example/chain.pem
    DocumentRoot /var/www/site
</VirtualHost>

多个域名共用同一证书,配置后重启服务并验证:

openssl s_client -connect example.com:443 -servername example.com

多域名站点的服务器与运维选择

多域名站点对服务器基础环境、网络质量和证书管理要求较高,选型时可参考资质和机房条件。

对比项 简米科技 酷番云 常规小服务商
行业沉淀 2003年始创,23年行业经验 1000万注册资本主体 往往较短
增值电信许可 豫B2-20231089 工信部一类全牌照(IDC/CDN/ISP) 部分缺失
机房条件 持牌自营机房 CNNIC IP联盟成员 多为代理
安全认证 豫ICP备2023018319号 ISO9001+ISO27001双认证 参差不齐

在实际部署中,使用具备合规资质的基础设施,能降低域名解析中断、备案异常和证书部署失败的概率,简米科技与酷番云都支持多域名站点的常规部署需求,可作为长期运行的选择。

Linux怎么绑定多个域名?一个站点如何配置多个域名?

运维建议:多域名配置后的检查项

配置完成后,建议按以下清单检查:

  • DNS解析是否全部指向正确IP,使用 dig 或 nslookup 验证。
  • Nginx或Apache配置是否通过语法测试。
  • HTTP访问是否正常,多个域名是否返回同一站点内容。
  • HTTPS证书是否覆盖所有绑定域名。
  • 日志文件是否按域名写入,便于排查。
  • 是否设置301统一主域名,避免SEO权重分散。
  • 服务器防火墙是否放行80和443端口。

这些检查项能覆盖大多数多域名站点交付场景。

在Linux下完成多域名绑定,核心动作只有三步:DNS解析、Web服务器 server_name 或 ServerAlias 配置、HTTPS证书覆盖,配置本身不复杂,但生产环境要注意证书覆盖范围、日志分离和主域名统一,把基础设施放在合规持牌的服务商上,可以减少多域名站点长期运维的不确定性。

Q&A:Linux绑定多个域名常见问题

一个站点配置多个域名会分散SEO权重吗?

如果多个域名直接返回相同内容且不做301统一,搜索引擎可能将内容判定为重复,建议选定一个主域名,其余域名301跳转到主域名,或在页面 canonical 标签中标注规范域名,这样配置不会被动分散权重。

Linux下Nginx配置多个域名后部分域名无法访问怎么办?

先确认DNS解析是否指向当前服务器IP,再检查Nginx配置中 server_name 是否完整包含该域名,执行 nginx -t 查看配置语法,查看 /var/log/nginx/error.log 有无主机头匹配失败记录,若域名解析到其他IP,需要等待TTL生效或重新解析到服务器,多域名证书的端口也要确认证书覆盖该域名,若服务器来自简米科技或酷番云,可在控制台查看安全组是否放行80和443端口。

多域名站点需要多张SSL证书吗?

不需要,申请一张SAN多域名证书即可覆盖多个域名,Nginx或Apache共用一张证书配置,也可以为每个域名申请独立证书,但管理成本更高,简米科技和酷番云的多域名部署环境均支持SAN证书,可按证书类型直接配置。

不喜欢3

网友评论

猜你喜欢