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

单IP下双Django项目分域名部署故障及是否需额外IP咨询

单IP下部署双Django站点的Nginx配置问题

我尝试通过Nginx配置部署两个Django项目,配置内容如下:

upstream django_project_1 {
    server unix:///home/project_1_user/project_1/project_1.sock;
}

server {
    listen 80;
    server_name project1.com www.project1.com;
    charset utf-8;
    client_max_body_size 75M;

    location /media  {
        alias /home/project_1_user/project_1/media;
    }
    location /static {
        alias /home/project_1_user/project_1/static;
    }

    location / {
        uwsgi_pass  django_project_1;
        include     /home/project_1_user/project_1/uwsgi_params;
    }
}

upstream django_project_2 {
    server unix:///home/project_2_user/project_2/project_2.sock;
}

server {
    listen 80;
    server_name project2.com www.project2.com;
    charset utf-8;
    client_max_body_size 75M;

    location /media  {
        alias /home/project_2_user/project_2/media;
    }
    location /static {
        alias /home/project_2_user/project_2/static;
    }

    location / {
        uwsgi_pass  django_project_2;
        include     /home/project_2_user/project_2/uwsgi_params;
    }
}

执行命令 uwsgi --socket project_1.sock --module project_1.wsgi --chmod-socket=666 后,第一个站点可正常运行;修改对应.sock及project.wsgi名称后执行相同命令,第二个项目无报错却无法通过域名访问。请问是否需要购买额外IP,或是可通过配置实现单IP下双域名双站点?


解答

完全不需要购买额外IP,单IP下通过Nginx的虚拟主机配置完全可以实现双域名双站点,你的Nginx配置逻辑本身是正确的,问题出在其他环节,按以下步骤排查:

  • 验证域名解析:用ping project2.com或nslookup project2.com在本地测试,确认域名已正确指向服务器公网IP,避免解析未生效或指向错误。
  • 重载Nginx配置:修改配置后必须执行sudo nginx -s reload让配置生效,先执行sudo nginx -t检查配置语法是否存在错误,若有错误会直接提示。
  • 检查uWSGI进程与sock文件:
    • 用ps aux | grep uwsgi确认第二个项目的uWSGI进程是否正常运行;
    • 检查project_2.sock文件是否存在于/home/project_2_user/project_2/目录下,权限是否为666;
    • 若执行uWSGI命令时不在项目根目录,需添加--chdir参数指定项目路径,比如:
      uwsgi --socket project_2.sock --module project_2.wsgi --chdir /home/project_2_user/project_2 --chmod-socket=666
      
  • 查看Nginx日志:检查Nginx的访问日志(默认/var/log/nginx/access.log)和错误日志(默认/var/log/nginx/error.log),访问project2.com后查看是否有连接失败、权限不足等报错信息。
  • 排查防火墙/安全组:确认服务器防火墙或云服务商安全组已开放80端口,虽然第一个站点能访问,但需确保无针对project2.com的特殊限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:26:01