news 2026/6/19 13:19:13

Django项目nginx转uWSGI问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Django项目nginx转uWSGI问题

主要在于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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 22:20:57

PaddlePaddle镜像如何实现模型灰度监控告警?异常检测规则设置

PaddlePaddle镜像如何实现模型灰度监控告警?异常检测规则设置 在AI服务日益深入生产核心的今天,一个看似微小的模型性能波动,可能就会引发线上业务指标的连锁下滑。尤其在中文自然语言处理、OCR识别或推荐系统这类高敏感场景中,一…

作者头像 李华
网站建设 2026/6/10 11:50:01

PaddlePaddle镜像如何实现模型冷启动性能压测?基准测试方案

PaddlePaddle镜像如何实现模型冷启动性能压测?基准测试方案 在AI服务日益走向工业级部署的今天,一个常被忽视却影响用户体验的关键指标正逐渐浮出水面——模型冷启动延迟。你有没有遇到过这样的场景:某个视觉识别接口平时响应只要50毫秒&…

作者头像 李华
网站建设 2026/6/10 11:25:25

PaddlePaddle自定义数据集训练全流程:GPU加速实操演示

PaddlePaddle自定义数据集训练全流程:GPU加速实操演示 在深度学习项目中,模型训练往往不是最难的部分——真正让人头疼的是如何把从零散图片或文本数据开始的整个流程跑通。尤其是当企业需要基于自有数据定制AI能力时,数据格式五花八门、环境…

作者头像 李华
网站建设 2026/6/18 10:42:40

小红书下载神器XHS-Downloader:一键搞定无水印素材批量下载

小红书下载神器XHS-Downloader:一键搞定无水印素材批量下载 【免费下载链接】XHS-Downloader 免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloade…

作者头像 李华
网站建设 2026/6/9 22:28:37

E7Helper如何通过五大智能模块彻底改变第七史诗的游戏体验?

第七史诗作为一款深度养成类RPG,其复杂的日常任务和资源管理往往让玩家感到疲惫。E7Helper作为专为第七史诗设计的智能辅助工具,通过五大核心功能模块,将繁琐操作转化为自动化流程,让玩家真正享受游戏乐趣而非被游戏所累。 【免费…

作者头像 李华
网站建设 2026/6/15 14:54:57

PaddlePaddle镜像如何实现模型灰度回退?故障应急方案

PaddlePaddle镜像如何实现模型灰度回退?故障应急方案 在AI系统频繁迭代的今天,一次看似微小的模型上线,可能引发服务雪崩。某金融风控平台曾因新版本模型误判率飙升,导致数千笔交易被错误拦截——直到运维团队耗时17分钟手动回滚才…

作者头像 李华