django+uwsgi+nginx生产环境部署

Posted on 2018-03-22 19:27  萧潇墨  阅读(63)  评论(0)    收藏  举报

 这两天被这个生产环境部署搞的头大,试过很多教程,很多文章,最终都是失败告终,最终没办法,用nginx反向代理,代理uwsgi对应端口的项目,不过我觉得这种生产环境部署效率太低了,不像tomcat部署java那样简单方便快捷,后面我会寻找更加快捷的办法。
 好的 废话不多说,写笔记
之前写过了django、uwsgi、nginx的安装方法,不知道的去之前日志看,这里就不在概述 直接上配置文件
在写好的django项目里面新建一个uwsgi.ini
配置如下:

# uwsig使用配置文件启动
[uwsgi]
# 项目目录
chdir=/opt/proj/teacher/
# 指定项目的application
module=teacher.wsgi:application
# 指定sock的文件路径       
socket=/opt/proj/script/uwsgi.sock
# 进程个数       
workers=5
pidfile=/opt/proj/script/uwsgi.pid
# 指定IP端口       
http=192.168.2.108:8080
# 指定静态文件
static-map=/static=/opt/proj/teacher/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录

daemonize=/opt/proj/script/uwsgi.log 
配置好uwsgi后配置nginx反向代理 nginx的配置文件在安装目录下的conf/nginx.conf

user nginx;
#设置nginx 用户 
worker_processes  1;
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
#自定义反向代理名称hello 
    upstream hello {
    server 42.51.157.240:8088;
    #server 42.51.157.240:6000;
    server 42.51.157.240:7000;
    server 42.51.157.240:8000;
    }
    server {
#监听80端口 
        listen       80;
        server_name  localhost;
        location / {
#代理hello地址 
            proxy_pass http://hello;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       8080;
        server_name  localhost;
        location / {
            proxy_pass http://hello;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
 实测可以访问项目 基本没什么问题,但是在部署项目的时候比较麻烦,每部署一个项目都需要配置一次