尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Django项目nginx转uWSGI问题

Django项目nginx转uWSGI问题
📅 发布时间:2026/6/20 15:40:23

主要在于3个方面:
1. 关于Nginx配置
2. 关于uWSGI配置
3. 关于环境(重要)

nginx:主要是做域名、掩饰内部服务器端口(uwsgin)和负载均衡,相当于中间层统一收到关于域名下的所有路由请求并转发给对应的WEB服务器处理

uWSGI:实际处理请求的服务器,我用它加载Django项目

环境:重要!!!! Django不同版本间存在很大的差异,一定要建立虚拟环境,下载对应的Python版本配置对应的Django版本,用虚拟环境启动的uWSGI来部署项目,否则会报错。

原因:因为当前Python将sqlite3嵌入到python中,不能额外下载部署版本,Python3.14版本前后还对sqlite进行改变。而Django在各大版本中会有用到sqlite3,那就会出现版本不兼容的问题,所以必须对应版本,否则启动起来了也用不了,会告诉你sqlite版本太低(3.7),要更高的Python

python runserver manang.py

Nginx配置:/etc/nginx/nginx.conf (或者你自己找到你的Nginx在哪)

在已经存在的http里面加入 include /etc/nginx/conf.d/*.conf,这是为了能方便对配置进行修改,防止后面找不到或者弄混,配置文档太长

http { include /etc/nginx/conf.d/*.conf; }

然后随便写一个 /etc/nginx/conf.d/你随便取名.conf

upstream django { server 127.0.0.1:8008; # 本地 uWSGI keepalive 256; } server { listen 80; server_name localhost; charset utf-8; client_max_body_size 75M; # 日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; # 静态文件(根据实际路径调整) location /static/ { alias /home/project/new_django/staticfiles/; expires 30d; add_header Cache-Control "public, immutable"; } # 媒体文件 location /media/ { alias /home/project/new_django/mediafiles/; expires 30d; } # Django 应用 - 使用 uWSGI location / { uwsgi_pass django; include uwsgi_params; uwsgi_connect_timeout 300s; uwsgi_read_timeout 300s; uwsgi_send_timeout 300s; uwsgi_buffer_size 32k; uwsgi_buffers 8 32k; # 设置请求头 uwsgi_param Host $host; uwsgi_param X-Real-IP $remote_addr; uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for; uwsgi_param X-Forwarded-Proto $scheme; } }

Django项目的manag,py同层级,写一个uwsgin.ini文件

然后用虚拟环境下的uwsgi启动即可

# Python 环境 # 使用虚拟环境(如果有) virtualenv = /home/project/new_django/venv # 或者设置 Python 路径 # python-path = /home/project/new_django/venv/lib/python3.10/site-packages # 项目设置 chdir = /home/project/new_django wsgi-file = new_django/wsgi.py module = new_django.wsgi:application # 进程管理 master = true processes = 4 threads = 2 max-requests = 5000 vacuum = true die-on-term = true # 网络设置 - 重要!使用 127.0.0.1 而不是 0.0.0.0 socket = 127.0.0.1:8008 # 如果 Nginx 和 uWSGI 在不同机器,才用 0.0.0.0 # socket = 0.0.0.0:8008 # 权限设置 chmod-socket = 666 chown-socket = nginx:nginx # 或者如果用户不同 # chown-socket = your_user:your_group # 缓冲区设置(防止大请求出错) buffer-size = 32768 post-buffering = 8192 # 超时设置 harakiri = 300 socket-timeout = 300 http-timeout = 300 # 日志设置(使用绝对路径) daemonize = /home/project/new_django/logs/uwsgi.log pidfile = /home/project/new_django/uwsgi.pid logto = /home/project/new_django/logs/uwsgi.log log-maxsize = 50000000 # 性能优化 enable-threads = true lazy-apps = true single-interpreter = true # 静态文件(可选,通常由 Nginx 处理) static-map = /static=/home/project/new_django/staticfiles

相关新闻

  • ESP32教程之Wi-Fi UDP通信从零实现
  • 解决USB-Serial Controller找不到驱动:基于CH340芯片的实战案例
  • emuelec如何玩转经典街机:实战案例分享

最新新闻

  • Segearth-R2-06
  • 2026上海风貌别墅装修7大品牌推荐榜:从设计还原到落地交付的全景解析 - 资讯速览
  • Adapter Framework 架构深读,SAP PI 连接外部世界的 Java 中枢
  • 玩转腾讯元宝复制表格,AI 导出鸭打造一站式导出方案
  • 2026年云南昆明装修选购参考指南:家装整装、别墅装饰、全屋定制、一站式装修优质厂商汇总 - 海棠依旧大
  • 解决重装系统后加密文件夹提示“读取加密信息发生异常”的问题(附步骤)

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号