Gunicorn+django部署

发布时间:2026/7/10 13:01:42
Gunicorn+django部署 部署前提是服务器中要有项目中所需的其他服务例mysql数据库nginxpython解释器等在其他环境搭好的情况下使用此方式可简单部署一个django项目。至于安装上面提到的这些有兴趣可点击前往博客查看或CSDN博客查看1、准备工作创建干净的虚拟环境执行下载命令下载所需依赖包测试数据库链接测试项目运行其中详细步骤上面博客链接中有这里不赘述了2、下载Gunicorn# workon进入项目的虚拟环境中下载# pip install gunicorn4、修改配置文件# 修改settings.py文件的INSTALLED_APPSINSTALLED_APPS[...gunicorn,# 把gunicorn添加到apps中]5、使用Gunicorn命令运行django项目# 在manage.py 同级目录下执行命令注book是项目名gunicorn book.wsgi-b127.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-logfile6、测试运行# 执行命令curl后查看返回状态这里未开启守护进程加载需要再开一个终端执行命令curl127.0.0.1:80007、运行可能报错# 如果使用参数 -k gevent 有可能报错错误大致信息就是缺少gevent或者gevent版本低pip下载一下就好或者更换版本# 同理使用其它 -k 参数也是如此8、配置脚本文件启动django项目在manage.py同级目录创建配置文件gunicorn.conf.py# gunicorn_config.pyimportloggingimportlogging.handlersfromlogging.handlersimportWatchedFileHandlerimportosimportmultiprocessing bind127.0.0.1:8000# 绑定ip和端口号# chdir /opt/workspace/bookstore # 目录切换# backlog 500 # 监听队列timeout60# 超时worker_classgevent# 使用gevent模式还可以使用sync 模式默认的是sync模式workersmultiprocessing.cpu_count()*21# 进程数threads2# 指定每个进程开启的线程数loglevelinfo# 日志级别这个日志级别指的是错误日志的级别而访问日志的级别无法设置access_log_format%(t)s %(p)s %(h)s %(r)s %(s)s %(L)s %(b)s %(f)s %(a)saccesslog/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:application10、nginx简单部署示例找到nginx配置文件打开添加站点http{include mime.types;default_type application/octet-stream;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout65;server{listen80;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_page500502503504/50x.html;location/50x.html{root html;}}}其中的 location / 中配置项目的url地址location /static 中配置静态文件路径