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

生产环境下如何同时部署使用Nuxt与Django?

部署方案选型参考

两种部署模式各有适用场景,你可以根据自己的项目规模、运维成本需求选择:

方案1:逻辑分离部署(绝大多数场景优先推荐)

  • 架构逻辑清晰:Django纯作为后端服务只提供REST/GraphQL API接口,Nuxt独立负责SSR渲染、前端路由、静态资源承载,前后端完全解耦。后续不管是迭代前端功能还是调整后端接口都不会互相影响,扩容也更灵活,比如后期接口并发升高只需要给Django集群加节点,前端访问量上涨单独给Nuxt扩容即可。
  • 成本可控:小流量项目完全可以把两个服务跑在同一台物理服务器上,用Nginx做反向代理,把/api前缀的请求转发给Django服务(一般用Gunicorn/uWSGI托管),其他所有请求转发给Nuxt服务即可,相当于物理同服、逻辑分离,比拆到两台服务器更节省成本。
  • 注意点:生产环境建议把跨域配置在Nginx层面,不需要修改Django的CORS配置就能避免跨域问题。

方案2:同服务耦合部署(仅特殊场景使用)

  • 只适合访问量极低的个人测试项目,操作是把Nuxt build后的静态资源放到Django的static目录,SSR请求仍转发给Nuxt服务。这种架构维护成本极高,每次前端更新都要重新打包同步资源到Django目录,完全不适合迭代频繁的中大型项目。
同服务器部署最简实操步骤
  • 服务器上分别安装Python、Node.js环境,独立配置Django虚拟环境和Nuxt运行依赖
  • 用Gunicorn启动Django服务,默认跑在本地端口例如127.0.0.1:8000
  • 用pm2托管Nuxt服务,默认跑在本地端口例如127.0.0.1:3000
  • 配置Nginx反向代理规则即可对外提供服务:
server {
    listen 80;
    server_name 你的业务域名;

    # 接口请求转发给Django
    location /api/ {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # 其他请求转发给Nuxt
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:27:05