插件窝 干货文章 nginx怎么配置二级域名

nginx怎么配置二级域名

配置 subdomain server yourdomain 882    来源:    2025-04-21

Nginx 配置二级域名指南

配置二级域名在 Nginx 中是一个常见的需求,下面我将详细介绍如何配置二级域名。

基本配置步骤

1. 确保DNS解析已设置

在域名管理面板中添加A记录,将二级域名指向服务器IP:

subdomain.yourdomain.com A 记录 → 服务器IP

2. Nginx 配置文件设置

方法一:单独配置文件(推荐)

/etc/nginx/conf.d//etc/nginx/sites-available/ 中创建新配置文件,例如 subdomain.conf

server {
    listen 80;
    server_name subdomain.yourdomain.com;

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

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

    # 其他配置...
}

方法二:主配置文件中添加

在现有的配置文件中添加新的 server 块:

server {
    listen 80;
    server_name www.yourdomain.com yourdomain.com;
    # 主域名配置...
}

server {
    listen 80;
    server_name subdomain.yourdomain.com;
    # 二级域名配置...
}

3. 创建网站目录

sudo mkdir -p /var/www/subdomain

4. 测试并重载Nginx

sudo nginx -t  # 测试配置
sudo systemctl reload nginx  # 重载配置

高级配置示例

1. 带HTTPS的二级域名

server {
    listen 80;
    server_name subdomain.yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name subdomain.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/subdomain.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/subdomain.yourdomain.com/privkey.pem;

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

    # 其他SSL配置...
}

2. 反向代理到其他服务

server {
    listen 80;
    server_name app.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

3. 通配符二级域名

server {
    listen 80;
    server_name ~^(?<subdomain>.+)\.yourdomain\.com$;

    root /var/www/$subdomain;

    # 如果目录不存在则返回404
    if (!-d $document_root) {
        return 404;
    }

    index index.html;
}

常见问题解决

  1. 配置不生效

    • 检查DNS解析是否生效:ping subdomain.yourdomain.com
    • 检查Nginx配置是否正确:nginx -t
    • 检查是否清除了浏览器缓存
  2. SSL证书问题

    • 为二级域名单独申请证书或使用通配符证书
    • 确保证书路径正确
  3. 403 Forbidden错误

    • 检查目录权限:chown -R www-data:www-data /var/www/subdomain
    • 确保目录中存在index文件
  4. 重定向循环

    • 检查HTTPS配置是否正确
    • 确保没有多个server块匹配同一个域名

通过以上步骤,您应该能够成功配置Nginx的二级域名。根据实际需求选择适合的配置方式。