Django + uwsgi + nginx
1. 安装 nginx
1.1 安装软件
sudo yum install epel-release
sudo yum install python-devel nginx
1.2安装进程管理
sudo pip install supervisor
1.3 关闭selinux和firewalld
vim /etc/selinux/config
SELINUX=disabled
sudo setenforce 0
sudo service iptables stop # centos6
sudo systemctl stop firewalld # centos6
2. uwsgi
sudo pip install uwsgi --upgrade
uwsgi --http :8001 --chdir /root/dbops/ --module dbops.wsgi
测试:
curl http//:127.0.0.1:8001/index/
或将配置写进ini
vim uwsgi.ini
[uwsgi]
socket = :8001
listen = 100
chdir = /root/dbops
module = dbops.wsgi:application
master = True
processes = 2
threads = 4
vacuum = true
max-requests=1000
pidfile=/tmp/dbops-master.pid
buffer-size = 16384
3. supervisord
3.1. 安装
pip install supervisor
3.2. 配置
vim /etc/supervisord.conf
# 基础配置
[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = root
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
strip_ansi = false
environment = KEY1="value1",KEY2="value2"
# program 配置
[program:dbops]
command=/usr/local/bin/uwsgi --ini /root/uwsgi.ini
directory=/root/dbops
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
stderr_logfile=/var/log/supervisord_dbops.err.log
stdout_logfile=/var/log/supervisord_dbops.out.log
3.3 启动supervisord
/usr/local/bin/supervisord -c /etc/supervisord.conf
4. 配置Nginx,连接uwsgi
4.1 Nginx 配置文件
vim /etc/nginx/nginx.conf 在http{ }中,加入如下内容。
upstream django{
server 127.0.0.1:8001;
}
server {
listen 8000;
server_name dbwtest03bc.daodao.com;
charset urf-8;
client_max_body_size 75M;
location / {
root /root/dbops;
uwsgi_pass django;
include uwsgi_params;
}
}
user改为root,否则容易权限报错
user root;
4.2 启动nginx
service nginx restart
访问测试。
http:127.0.0.1:8000/index/