Django uwsgi+nginx+supervisor部署
Posted Python测试开发成长之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django uwsgi+nginx+supervisor部署相关的知识,希望对你有一定的参考价值。
Django 配置
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', '106.54.238.180']
STATIC_ROOT = os.path.join(BASE_DIR, 'static_dist')
修改完配置文件后将项目上传至服务器
uwsgi+nginx+supervisor
安装uwsgi
pip3 install uwsgi
创建配置文件uwsgi.ini
[uwsgi]
# 项目目录(路径)
chdir = /usr/local/mock/
# Django的wsgi文件
module = MagicMockServer.wsgi
# 启用主进程
master = true
# 进程个数
processes = 1
socket = /usr/local/mock/mock.sock
#http = :8080
# socket权限设置
chmod-socket = 666
# 自动移除unix Socket 和 Pid 文件 当服务停止的时候
vacuum = true
# 设置日志目录
# daemonize = /var/log/mock_uwsgi.log
nginx部署
1.安装nginx,yum install nginx
2.添加配置文件;进入到conf.d目录 cd /etc/nginx/conf.d;创建mock.conf文件 touch mock.conf
upstream mock {
server unix:///usr/local/mock/mock.sock;
}
# 配置服务器
server {
# 监听的端口号
listen 8080;
# 域名
server_name 106.54.238.180;
charset utf-8;
# 最大的文件上传尺寸
client_max_body_size 75M;
# 静态文件访问url
location /static {
# 静态文件地址
alias /usr/local/mock/static_dist;
}
# 最后, 发送所有非静态文件请求到django服务器
location / {
uwsgi_pass mock;
# uwsgi_params文件地址
include /etc/nginx/uwsgi_params;
}
}
supervisor管理uwsgi进程
supervisor管理uwsgi作用;可以在uwsgi发生意外的情况下,会自动重启。
1.安装supervisor,pip3 install supervisor
2.项目根目录下创建supervisor.conf
[program:mock]
# 执行命令
command = uwsgi --ini uwsgi.ini
# 项目路径
directory = /usr/local/mock/
# 开始的时候等待几秒
startsecs = 0
# 停止的时候等待几秒
stopwaitsecs = 0
# 自动开始
autostart = true
# 程序挂了后自动重启
autorestart = true
stdout_logfile = /usr/local/mock/supervisord.log
stderr_logfile = /usr/local/mock/supervisord.err
[supervisord]
loglevel = info
[inet_http_server]
# supervisor 服务器
port = :9005
username = admin
password = 123
[supervisorctl]
# 使用supervisorctl的配置
serverurl = http://127.0.0.1:9005
username = admin
password = 123
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
supervisord 相关命令
运行:supervisord -c supervisor.conf
启动uwsgi 通过supervisorctl -c supervisor.conf 进入管理控制台,然后执行相关命令:
status: 查看状态
start program_name 启动程序
restart program_name 重启程序
stop program_name 停止程序
reload 重新加载配置文件
quit 退出控制台
相关问题汇总
django.db.utils.OperationalError: (2026, 'SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol')报错;解决方法
vim /etc/crypto-policies/back-ends/opensslcnf.config
CipherString = @SECLEVEL=2:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
Ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256
# MinProtocol = TLSv1.2
# 这里把1.2改成1.1
MinProtocol = TLSv1.1
openssl升级降级
wget http://www.openssl.org/source/openssl-1.0.2d.tar.gz
2、安装到/usr/local/ssl/目录下:
tar zxvf openssl-1.0.2d.tar.gz
cd openssl-1.0.2d
./config --prefix=/usr/local/ssl
make && make install
mv -f /usr/bin/openssl /usr/bin/openssl.old
mv -f /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl #修改软链,指向新版本的openssl路径
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib">>/etc/ld.so.conf
#添加so库的路径,添加完成之后,运行ldconfig ,将新增的so 文件缓存到/etc/ld.so.cache中;
ldconfig -v
openssl version -a #确认版本是否为1.0.2d
以上是关于Django uwsgi+nginx+supervisor部署的主要内容,如果未能解决你的问题,请参考以下文章
通过 Nginx 的 uwsgi + django - uwsgi 设置/生成?