插件窝 干货文章 Nginx如何实现一个站点配置多个域名

Nginx如何实现一个站点配置多个域名

server example 配置 域名 490    来源:    2025-04-23

Nginx配置多个域名指向同一个站点

在Nginx中,可以通过以下几种方式实现一个站点配置多个域名:

方法一:使用server_name指令配置多个域名

server {
    listen 80;
    server_name example.com www.example.com example.net www.example.net;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

方法二:使用通配符域名

server {
    listen 80;
    server_name *.example.com;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

方法三:使用正则表达式匹配域名

server {
    listen 80;
    server_name ~^(www\.)?example\.(com|net)$;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

方法四:使用默认服务器配置

server {
    listen 80 default_server;
    server_name _;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

最佳实践建议

  1. 主域名优先:将主要域名放在server_name列表的第一个位置
  2. HTTPS配置:如果使用HTTPS,确保所有域名都包含在SSL证书中
  3. 重定向配置:考虑将非主域名重定向到主域名
server {
    listen 80;
    server_name www.example.com example.net www.example.net;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;
    # SSL证书配置
    # 站点配置
}

配置完成后,记得测试并重新加载Nginx配置:

sudo nginx -t
sudo systemctl reload nginx