当前位置: 首页 > news >正文

使用 Gunicorn 部署 Django 项目

准备工作. 安装 Gunicorn

pip install gunicorn

1. 使用配置文件

创建 gunicorn_conf.py 文件:

import multiprocessingbind = "127.0.0.0:8001"
workers = multiprocessing.cpu_count() * 2 + 1
worker_class = "gthread"
threads = 4
max_requests = 1000
timeout = 30
keepalive = 2
accesslog = "/var/log/gunicorn/access.log"
errorlog = "/var/log/gunicorn/error.log"

然后运行:这是手动测试

gunicorn -c gunicorn_conf.py zhiliaoblog.wsgi:application

2. 结合 Nginx

Nginx 配置示例:

nginx

upstream django_app {server 127.0.0.1:8001;
}server {listen 80;server_name blog.larance.xyz;location / {proxy_pass http://django_app;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;proxy_redirect off;}location /static/ {alias /home/ubuntu/zhiliaoblog/static/;}location /media/ {alias /home/ubuntu/zhiliaoblog/media/;}
}

3. 创建 Supervisor 配置文件

/etc/supervisor/conf.d/zhiliaoblog.conf

[program:zhiliaoblog]
command=/home/ubuntu/zhiliaoblog/blog_env/bin/gunicorn -c /home/ubuntu/zhiliaoblog/gunicorn_conf.py zhiliaoblog.wsgi:application
directory=/home/ubuntu/zhiliaoblog
user=ubuntu
autostart=true
autorestart=true
startsecs=5
startretries=3
redirect_stderr=true
stdout_logfile=/var/log/supervisor/zhiliaoblog.log
environment=DJANGO_SETTINGS_MODULE="zhiliaoblog.settings",PATH="/home/ubuntu/zhiliaoblog/blog_env/bin:%(ENV_PATH)s",PYTHONPATH="/home/ubuntu/zhiliaoblog"

启用并启动服务:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start zhiliaoblog

http://www.lryc.cn/news/593208.html

相关文章:

  • 5 基于STM32单片机的绝缘检测系统设计(STM32代码编写+手机APP设计+PCB设计+Proteus仿真)
  • 6 STM32单片机的智能家居安防系统设计(STM32代码+手机APP设计+PCB设计+Proteus仿真)
  • 对话访谈 | 盘古信息×锐明科技:中国企业高质量出海“走进去”和“走上去”
  • 家庭KTV v1.1.9 | 曲库丰富,无限制免费K歌
  • 驾驭 Spring Boot 事件机制:8 个内置事件 + 自定义扩展实战
  • 《一行注解解决重复提交:Spring Boot 接口幂等实战》
  • 深入理解设计模式:策略模式的艺术与实践
  • 在非Spring Boot的Spring项目中使用Lock4j
  • 用graphviz画一个关系图
  • 云服务器磁盘IO性能优化的测试与配置方法
  • 2025年7月19日,二维矩阵
  • 智能制造——解读39页汽车行业数字化工厂解决方案【附全文阅读】
  • 异世界历险之数据结构世界(二叉树-leetcode)
  • 国产电科金仓数据库:融合进化,智领未来
  • 【Unity3D实例-功能-移动】角色移动-通过WSAD(Rigidbody方式)
  • 架构探索笔记【1】
  • JavaScript空值安全深度指南
  • windows内核研究(驱动开发之内核编程)
  • Java无服务架构新范式:Spring Native与AWS Lambda冷启动深度优化
  • 【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL、GIS)
  • C++STL系列之概述
  • OpenCV 官翻5 - 机器学习
  • 【web安全】万能密码
  • 物联网系统中的可视化大屏定义
  • UGUI 性能优化系列:第三篇——渲染与像素填充率优化
  • 小明记账簿焕新记:从单色到多彩的主题进化之路
  • 【Android】ListView与RecyclerView的基础使用
  • 安全隔离新选择:SiLM5768L系列 - 集成互锁功能的高速六通道数字隔离器
  • 从随机数值到特征检测器的学习与更新
  • 【Linux驱动-快速回顾】简单了解一下PinCtrl子系统:设备树如何被接解析与匹配