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

寻求Windows环境下Django+Nginx+Gunicorn+PostgreSQL部署参考文档

Windows下用Nginx + Gunicorn + PostgreSQL部署Django项目流程

1. 先把基础环境搭好

  • 装Python:去官网下对应版本,一定要勾选「Add Python to PATH」,装完打开命令行输python --version和pip --version确认没问题
  • 装PostgreSQL:官网下安装包,设置好数据库密码(别忘),默认端口5432。装完启动服务,用命令行或者pgAdmin创建专属的数据库和用户:
    • 打开PostgreSQL自带的psql命令行,输入密码登录
    • 创建用户:CREATE USER django_user WITH PASSWORD 'your_password';
    • 创建数据库:CREATE DATABASE django_db OWNER django_user;
    • 给权限:GRANT ALL PRIVILEGES ON DATABASE django_db TO django_user;
  • 装Gunicorn:Windows上得先装依赖,命令行输pip install pywin32,再装pip install gunicorn
  • 装Nginx:官网下稳定版压缩包,解压到C盘根目录(比如C:\nginx),记住这个路径

2. 调整Django项目配置

  • 进项目根目录,推荐建个虚拟环境:python -m venv venv,然后激活它:venv\Scripts\activate
  • 装项目依赖:pip install -r requirements.txt,确保里面有django、psycopg2-binary(连PostgreSQL用的)这些
  • 修改settings.py:
    • 替换数据库配置:
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.postgresql',
              'NAME': 'django_db',
              'USER': 'django_user',
              'PASSWORD': 'your_password',
              'HOST': 'localhost',
              'PORT': '5432',
          }
      }
      
    • 加允许访问的主机:ALLOWED_HOSTS = ['localhost', '127.0.0.1', '你的服务器公网IP']
    • 配置静态文件:
      STATIC_URL = '/static/'
      STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
      
  • 跑数据库迁移:python manage.py makemigrations,再python manage.py migrate
  • 收集静态文件:python manage.py collectstatic(按提示输yes)
  • 先测一遍项目:python manage.py runserver,打开浏览器访问http://127.0.0.1:8000,确认能正常打开

3. 用Gunicorn启动Django

  • 在项目根目录建个启动脚本,比如叫gunicorn_start.bat,内容填:
    @echo off
    cd /d "你的项目根目录绝对路径"
    venv\Scripts\activate
    gunicorn --bind 127.0.0.1:8000 你的项目名.wsgi:application
    
  • 双击这个bat文件,或者在命令行运行,等Gunicorn启动后,再访问http://127.0.0.1:8000验证没问题

4. 配置Nginx反向代理

  • 进C:\nginx\conf目录,打开nginx.conf,找到http块里的server节点,替换成下面的配置:
    server {
        listen 80;
        server_name localhost 你的服务器公网IP;
    
        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;
        }
    
        location /static/ {
            alias 你的项目根目录/staticfiles/;
        }
    }
    
  • 测Nginx配置对不对:打开命令行,进C:\nginx目录,输nginx -t,显示test is successful就没问题
  • 启动Nginx:nginx.exe,要停止就输nginx.exe -s stop,重启用nginx.exe -s reload

5. 设置开机自启(可选)

  • Gunicorn自启:用nssm工具(自己去下),命令行输nssm install GunicornDjango,弹出的窗口里填:
    • Path:选虚拟环境里的gunicorn路径,比如venv\Scripts\gunicorn.exe
    • Arguments:--bind 127.0.0.1:8000 你的项目名.wsgi:application
    • Working Directory:你的项目根目录绝对路径
    • 然后启动服务:nssm start GunicornDjango
  • Nginx自启:同样用nssm,输nssm install Nginx,窗口里填:
    • Path:C:\nginx\nginx.exe
    • Arguments:-p C:\nginx
    • 启动服务:nssm start Nginx

6. 常见问题排查

  • 访问Nginx出502错误:检查Gunicorn是不是没启动,或者端口填错了
  • 静态文件加载不出来:看Nginx里的alias路径是不是和staticfiles目录完全一致,有没有漏写斜杠
  • 数据库连不上:检查settings.py里的账号密码对不对,PostgreSQL服务有没有开,用户有没有数据库权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:57:46