部署前提是服务器中要有项目中所需的其他服务,例:mysql数据库,nginx,python解释器等,在其他环境搭好的情况下使用此方式可简单部署一个django项目。

至于安装上面提到的这些,有兴趣可点击前往博客查看或CSDN博客查看

1、准备工作

  • 创建干净的虚拟环境
  • 执行下载命令下载所需依赖包
  • 测试数据库链接
  • 测试项目运行
  • (其中详细步骤上面博客链接中有,这里不赘述了)

2、下载Gunicorn

# workon进入项目的虚拟环境中下载
# pip install gunicorn

4、修改配置文件

# 修改settings.py文件的:INSTALLED_APPS
INSTALLED_APPS = [...'gunicorn',  # 把gunicorn添加到apps中
]

5、使用Gunicorn命令运行django项目

# 在manage.py 同级目录下执行命令,注:book是项目名
gunicorn book.wsgi -b 127.0.0.1:8000

基本参数列表:

-c        指定一个配置文件(py文件)
-b        与指定的socket进行绑定
-D        以守护进程形式来运行Gunicorn进程
-w        工作的进程数量,后面加数字;[gunicorn -w 2 untitled.wsgi -b 0.0.0.0:8000]
–threads  后面加数字,处理请求的最大线程数
-k        工作进程类型: sync(默认), eventlet, gevent, or tornado, gthread, gaiohttp.
–chdir    后面加路径,跳转到目录下执行
–reload   后面可加参数,默认参数false,开启为true,开启时当代码发生改变,会重新加载修改的代码,并启动程序,(热加载)
-proxy-protocol
–worker-connections
–access-logfile

6、测试运行

# 执行命令curl后查看返回状态,这里未开启守护进程,加载需要再开一个终端执行命令
curl 127.0.0.1:8000

7、运行可能报错

# 如果使用参数 -k gevent 有可能报错,错误大致信息就是缺少gevent或者gevent版本低,pip下载一下就好,或者更换版本
# 同理使用其它 -k 参数也是如此

8、配置脚本文件启动django项目

在manage.py同级目录创建配置文件gunicorn.conf.py

# gunicorn_config.py
import logging
import logging.handlers
from logging.handlers import WatchedFileHandler
import os
import multiprocessingbind = '127.0.0.1:8000'      # 绑定ip和端口号
# chdir = '/opt/workspace/bookstore'  # 目录切换
# backlog = 500              # 监听队列
timeout = 60                 # 超时
worker_class = 'gevent' # 使用gevent模式,还可以使用sync 模式,默认的是sync模式
workers = multiprocessing.cpu_count() * 2 + 1    # 进程数
threads = 2  # 指定每个进程开启的线程数
loglevel = 'info'  # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
accesslog = "/opt/workspace/bookstore/log/gunicorn_access.log"  # 访问日志文件
errorlog = "/opt/workspace/bookstore/log/gunicorn_error.log"    # 错误日志文件

9、运行命令

# gunicorn.conf.py 是配置文件
# bookstore 是项目名
# gunicorn -c gunicorn.conf.py bookstore.wsgi:application

10、nginx简单部署示例

找到nginx配置文件打开添加站点

http {include       mime.types;default_type  application/octet-stream;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;server {listen       80;server_name  www.flag.space, 109.39.89.199;location / {proxy_pass http://127.0.0.1:8000;#root   html;#index  index.html index.htm;}location /static {alias /opt/workspace/bookstore/static;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

其中的 location / 中配置项目的url地址

location /static 中配置静态文件路径

Gunicorn+django部署相关推荐

  1. Django 部署基础【使用 Nginx + uWSGI 的方式来部署来 Django】

    本文主要讲解在 Linux 平台下,使用 Nginx + uWSGI 的方式来部署来 Django,这是目前比较主流的方式.当然你也可以使用 Gunicorn 代替 uWSGI,不过原理都是类似的,弄 ...

  2. nginx+uWSGI + django部署项目

    项目部署 nginx+uWSGI + django 1. WSGI WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器(返回静态资源的就是web服务器,Nginx)如何与Web应用程序( ...

  3. django 部署_狂野的Django:部署生存的技巧

    django 部署 by Ali Alavi 通过Ali Alavi 狂野的Django:部署生存的技巧 (Django in the wild: tips for deployment surviv ...

  4. python之Django部署

    Django部署: 1. 租云服务器 2. 买服务器 租:公网IP,111.13.101.208 租域名:www.pythonav.com <-> 111.13.101.208 3. 编写 ...

  5. nginx uwsgi django部署

    虽然网上有很多这方面部署材料,但很多材料内容并不完善.即便搜索网上大量的部署材料,还是花了我好几天的时间才搞出来.部署步骤太复杂了,尤其uwsgi,感觉是反人类的设计. 言归正传,我的部署版本分别如下 ...

  6. Uwsgi+Nginx+Django部署

    Django+Uwsgi+Nginx部署 这几天一直在捣腾Django部署,一只菜鸡的上山路 如果什么不对,还请多多指教. 参考:如何使用Django与uWSGI,Uwsgi文档 Linux使用的是u ...

  7. CentOS6.5下Gunicorn+Django+nginx部署的过程

    2019独角兽企业重金招聘Python工程师标准>>> 本文假设你已经在CentOS下使用Python manage.py runserver 0.0.0.0:8080,能够顺利跑起 ...

  8. django+nginx+gunicorn+supervisord部署配置

    一.背景介绍 后端服务是Django框架编写的,需要使用Gunicorn进行服务托管,使用supervisord进行保持活跃,最后通过Nginx向外提供服务 二.nginx+gunicorn 安装和配 ...

  9. nginx + gunicorn + django的简单部署

    sudo apt-get install nginxcd /etc/nginx/sites-availablesudo vim default 原本是想安装Image包,但是百度的方法都乱七八糟的不能 ...

最新文章

  1. 将查询后的数据导入到其他表中
  2. 第十届 蓝桥杯样题 —— 信用卡号验证
  3. 数据结构学习官方代码
  4. ui设计基础_我不知道的UI设计的9个重要基础
  5. Java两种设计模式_23种设计模式(11)java策略模式
  6. bzoj2425 [HAOI2010]计数 组合数
  7. python导入自己写的py_卧槽,神操作!一句查询让Python帮忙自己写程序
  8. PHPStorm IDE 快捷键(MAC)
  9. 南非世界杯火热角逐 金山网盾开启搜索保护
  10. python从入门到放弃表情图-Python 从入门到放弃(一)
  11. cocos lua 溶解_Cocos2d-x的lua官方加密的解密方法
  12. 计算机total函数,以一敌十的SUBTOTAL函数,你不会用就太可惜了!
  13. wifi大师小程序独立版3.0.8源码
  14. gateway跨域问题解决方法
  15. 消极和积极的道德--给亲爱的安德烈
  16. 测试手机是否降频软件,如何检测自己的iPhone是否被苹果降频 降频的处理方法有哪些...
  17. 时间序列进行分析的一些手法以及代码实现(移动平均、指数平滑、SARIMA模型、时间序列的(非)线性模型)
  18. jpg转bmp(使用libjpeg库)
  19. 1647:迷路(矩阵快速幂+矩阵点的拆分)
  20. 二叉树的遍历——层序遍历

热门文章

  1. [Google]google一些常用的搜索技巧探讨
  2. Excel加载项没有PowerPivot选项,怎么添加
  3. gige相机二次开发_GigE Vision接口摄像机及其应用
  4. Iframe简单的嵌套用法
  5. 计算机专业毕业设计答辩ppt案例,计算机专业 毕业设计答辩PPT.ppt
  6. Get 和 Post 请求
  7. 一、考研英语阅读能力高效能提升原则案例剖析-考研英语一2019年完型填空-如何走出迷失的森林(待续)
  8. Hypervisor 简介
  9. 虚拟机由于硬盘存储空间过满导致启动异常+虚拟机扩容
  10. JS之splice和slice函数