一、创建的Gunicorn启动配置文件/home/byhy/bysms_back_v1.5/bysms/gunicorn_conf.py代码如下:
import sys,os
bind = '127.0.0.1:8000' # gunicorn/django 服务监听地址、端口
workers = 3 #gunicorn worker进程个数
worker_class = "gevent" # gunicorn worker类型,使用异步event类型IO效率比较高
errorlog = "/home/byhy/gunicorn.log" # 日志文件路径
loglevel = "info"
cwd = os.getcwd()
sys.path.append(cwd)
二、配置Ubuntu 启动Gunicorn的shell脚本/home/byhy/bysms_back_v1.5/run.sh的代码如下:
#!/bin/bash
DIR="$( cd "$( dirname "$0" )" && pwd )"
echo $DIR
cd $DIR
nohup gunicorn --config=bysms/gunicorn_conf.py bysms.wsgi &> /dev/null &
三、进入到目录 bysms_back_v1.5 中,执行命令,让启动脚本“run.sh”转换成符合linux系统的文本格式,并且有可执行权限:
dos2unix run.sh
chmod +x run.sh
四、启动运行Gunicorn和Django。执行命令./run.sh,运行脚本,执行命令ps -ef | grep python |grep gunicorn_conf |grep -v grep
查看是否启动成功,结果没有显示gunicorn和python启动的进程信息,并且实际运行网站时报错404,如下图:
nginx/1.22.0 (Ubuntu)
先手工启动下,看有啥错误信息,是不这个gunicorn命令找不到啊
gunicorn --config=bysms/gunicorn_conf.py bysms.wsgi
嗯,这算是比较完整的实例,提供以作参考【Ubuntu 16.04 上使用Nginx、 Gunicorn、supervisor 部署django项目】,链接:https://www.jianshu.com/p/8ce8fc7077ee
[uwsgi]
# 设置 django项目的位置
chdir=/home/gck/app/terminal
# 设置 wsgi协议的入口
module=terminal.wsgi:application
# 设置是否使用主进程
master=True
# 设置主进程启动的程序文件
pidfile= uwsgi.pid
# 清除 uwsgi服务器在运行过程中产生的垃圾
vacuum = True
# 设置允许的最大请求数
max-requests = 5000
# 设置 uwsgi 服务器在运行过程中 产生的日志存放的位置
daemonize = uwsgi.log
# 设置 django的 环境(配置文件)
env = DJANGO_SETTINGS_MODULE=terminal.settings
# 设置 访问 django项目的 IP 和端口
socket = 192.168.64.128:8000
# 设置启动 uwsgi 的进程数
processes = 5
# 设置项目的虚拟环境
venv = /home/gck/app/terminal/venv
# 设置 python关联
plugin = python3