You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Nginx实现主域名静态站点与子域名Django站点分离

修复Nginx配置:主域名静态站/子域名Django站分离

问题根源

  1. 端口错误:你的静态站点配置监听的是7080端口,但用户访问example.com用的是默认的80(HTTP)/443(HTTPS)端口,Nginx根本不会把请求转到7080的server块。
  2. 拼写错误:所有exemple.com都是example.com的误拼,导致Nginx匹配不到正确的域名规则。
  3. 默认配置干扰:如果默认的Nginx站点配置(比如default)还在启用状态,它会优先匹配未明确指定的请求。

修正步骤

1. 修正Django站点配置(/etc/nginx/sites-available/mydjangosite)

把所有拼写错误的exemple.com改成example.com,同时确保证书路径正确:

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

server {
    listen 443 ssl;
    server_name django.example.com;
    # 修正证书路径里的拼写错误
    ssl_certificate /etc/letsencrypt/live/example.com-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com-0001/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8000;
        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. 重写静态站点配置(/etc/nginx/sites-available/staticsite)

改成监听默认的80/443端口,只匹配主域名example.com,并配置SSL:

# HTTP跳转HTTPS
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

# HTTPS静态站点
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com-0001/privkey.pem;

    location / {
        root /home/jamelaumn/portfolio;
        index index.html;
        # 可选:如果是单页应用,添加这行处理路由
        # try_files $uri $uri/ /index.html;
    }
}

3. 清理干扰配置

禁用默认的Nginx站点(如果它还在启用状态):

sudo unlink /etc/nginx/sites-enabled/default

4. 验证并重启Nginx

# 检查配置语法是否正确
sudo nginx -t
# 重启Nginx服务
sudo systemctl restart nginx

5. 测试访问

  • 访问https://example.com:应该加载你的静态站点
  • 访问https://django.example.com:应该跳转并加载Django站点

内容的提问来源于stack exchange,提问作者Jamelaumn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:05:18