1、系统版本和工具概览
1.1 系统版本
ubuntu 18.04
1.2 工具概览
nginx # 提高并发能力的反向代理服务器
uwsgi # 实现了WSGI协议的一个web服务器,用来接受客户端请求,转发响应。
supervisor # 守护进程工具,监控任务,进程挂掉后自动重启
2、安装配置uwsgi
2.1 安装uwsgi
pip3 install uwsgi
2.2 配置uwsgi
在Django项目的manage.py 同级目录下新建uwsgi.ini文件,并添加如下内容:
# uwsgi.ini file
[uwsgi]
# Django-related settings
socket = 01
# the base directory (full path)
chdir = /home/ubuntu/test/test_project/
# Django wsgi file
module = test_project.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
# virtualenv(full path)
virtualenv = /home/ubuntu/virtualenvs/test_project
# the --enable-threads option
enable-threads = true
# auto reload uwsgi
py-autoreload = 1
2.3 验证配置效果
项目目录下运行如下命令:浏览器输入项目接口路由,看能否正常访问获取到数据:
uwsgi -i uwsgi.ini # 启动服务
ps aux | grep uwsgi # 查看uwsgi进程
3、安装配置nginx
3.1 安装nginx
sudo apt-get install nginx
3.2 配置nginx
sudo vim /etc/nginx/sites-enabled/default # 在server内增加如下内容
server {
listen 9000; # 端口号,避免与其它端口冲突
server_name 127.0.0.1;
charset utf-8
client_max_body_size 10G # 文件限制太小可能导致文件上传失败
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:01;
# 此处的01端口要和uwsgi.ini配置的socket端口一致
}
}
3.3 重启nginx
sudo /etc/init.d/nginx restart
3.4 验证配置效果
killall -9 uwsgi # 关闭所有uwsgi进程
uwsgi -d -i uwsgi.ini # 后台自动运行
# 浏览器输入9000端口 + 接口路由,看能否正常访问获取到数据。
4、安装配置supervisor
4.1 安装supervisor
pip3 install supervisor
4.2 配置supervisor
在Django项目的manage.py同级目录下新建supervisor.conf文件,并添加如下内容:
[program:test_project]
command = uwsgi -i uwsgi.ini
directory = /home/ubuntu/test/test_project/
startsecs = 0
stopwaitsecs = 0
autotart = true
autorestart = true
startretries = 3
user = ubuntu
[supervisord]
loglevel = info
[inet_http_server]
port = :9001
[supervisorctl]
serverurl = http://127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
4.3 启动supervisor
supervisord -c supervisor.conf
ps aux | grep supervisor # 查看supervisor进程
4.4 创建监控任务
supervisorctl -c supervisor.conf # 进入命令
start test_project # 启动任务,需要先关闭掉之前打开的uwsgi进程
status # 查看任务运行状态
// stop test_project # 停止任务
4.5 验证配置效果
在手动关闭uwsgi进程之后,通过supervisor来启动服务
浏览器输入9000端口 + 接口路由,看能否正常访问获取到数据,如果正常访问,说明配置成功。