CentOS运行Django实录

记录概要

记录了 CentOS 中快速从开发环境通过git传递 Django 项目文件,并进行虚拟环境运行的步骤和方法,主要参考了Django 服务部署

0x00 虚拟环境配置

// 安装虚拟环境
pip3 install virtualenv
// 创建虚拟环境
virtualenv venv  #创建虚拟环境

source venv/bin/activate  # 进入虚拟环境
deactivate #退出虚拟环境

0x01 安装项目依赖包

# 在开发环境生成requirements.txt文件

pip freeze >requirements.txt

# 由于默认的pip freeze命令生成的依赖包是你环境下所有的包,不是跟你项目相关的包也会生成,可能会有很多,所以这里我使用第三方包 pipreqs

pipreqs ./

# pipreqs 会去遍历你项目目录,尽可能的识别你的依赖包,但可能会遗漏,需要你检查下

# 在服务器上安装依赖文件

pip install -r requirements.txt

0x02 获取代码

# 克隆项目代码
git clone XXX项目地址

# 拉取项目代码
git pull

0x03 Gunicorn部署

安装

pip install gunicorn

配置

INSTALLED_APPS = [
    ...
    'gunicorn',
    ...
]

运行(-w 4是启动4个进程,可以支持更多的并发。)

gunicorn api.wsgi:application -b 0.0.0.0:8081 -w 4 -k gthread

配置文件(gunicorn.conf.py)

import logging
import logging.handlers
from logging.handlers import WatchedFileHandler
import os
import multiprocessing

bind = "0.0.0.0:8091"   #绑定的ip与端口
backlog = 512                #监听队列数量,64-2048
#chdir = '/home/test/server/bin'  #gunicorn要切换到的目的工作目录
worker_class = 'sync' #使用gevent模式,还可以使用sync 模式,默认的是sync模式
workers = 4 # multiprocessing.cpu_count()    #进程数
threads = 16 #multiprocessing.cpu_count()*4 #指定每个进程开启的线程数
loglevel = 'info' #日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'

# accesslog = "/home/log/gunicorn_access.log"      #访问日志文件
#errorlog = "/home/log/gunicorn_error.log"        #错误日志文件
accesslog = "-"  #访问日志文件,"-" 表示标准输出
errorlog = "-"   #错误日志文件,"-" 表示标准输出

proc_name = 'fof_api'   #进程名

其中access_log_format选项的变量含义如下:

h          remote address
l          '-'
u          currently '-', may be user name in future releases
t          date of the request
r          status line (e.g. ``GET / HTTP/1.1``)
s          status
b          response length or '-'
f          referer
a          user agent
T          request time in seconds
D          request time in microseconds
L          request time in decimal seconds
p          process ID

以gunicorn.conf.py配置文件启动gunicorn

gunicorn -c gunicorn.conf.py api.wsgi:application

0xPS 宝塔面板部署项目

  • 导出项目包
python3 -m pip freeze > requirements.txt
  • 管理器中添加项目
    在python项目管理器中配置,添加项目
    勾选“是否安装模块依赖”,会自动帮我们读取项目下的requirements.txt,然后安装响应的模块,所以这里的时间会比较长
  • 映射域名
    给项目绑定一个预留的域名
  • 配置站点
    配置静态文件
location /static/
{
    alias /www/wwwroot/ProjectName/static/;
}
  • 重启项目
    同时还需要重启一下Nginx,这个相信大家都会~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值