nginx+uwsgi部署django应用

安装软件

1、python虚拟环境搭建:
pip3 install virtualenv virtualenvwrapper:参考https://www.jianshu.com/p/9ee09e2657c3
2、安装django
pip3 install django==1.11.10
3、安装uwsgi
pip3 install uwsgi
安装uwsgi可能遇到的问题:
(1)缺c++编译器,yum install -y gcc gcc-c++
(2)缺python-devel,yum install python3-devel.x86_64 【注意是python3】
4、安装nginx
yum install nginx

创建一个django项目,并在项目根目录下创建uwsgi.ini文件

文件内容如下:

[uwsgi]
project_base = /home/nginx
project_name = 'xxx_app'
# 项目目录全局变量,注意后面不要加 /
#http  = 0.0.0.0:3033
    #使用http, 可以直接对外服务
socket = 127.0.0.1:3033
    #使用 socket,必须使用nginx uwsgi_pass 代理才能对外服务
stats = 0.0.0.0:4033
  #监听与状态的IP和端口
daemonize = /var/log/nginx/%(project_name).uwsgi.log
    #后台启动,并把日志记录到指定文件
home=/root/.virtualenvs/venv_pdf2html
    # 配置虚拟python环境路径
chdir = %(project_base)/%(project_name)    
    #项目根目录
wsgi-file = %(project_base)/%(project_name)/pdf_to_html/wsgi.py
pidfile = %(project_base)/%(project_name)/uwsgi_master.pid
#module = 5ink_url_redirect.wsgi
    #uwsgi文件,注意不用把后缀.py加上去

master = true
buffer-size = 21573
processes = 2
threads = 2
  #开启2个进程(按需更改)  每个进程开启2个线程
enable-threads = True
  #支持线程启动
vacuum=true
  # 自动移除unix Socket和pid文件当服务停止的时候
#uid=root       # 启动uwsgi的用户名和用户组
#gid=root       # 启动uwsgi的用户名和用户组

配置nginx

创建nginx.conf文件,放到nginx安装目录:/etc/nginx/conf.d/ 下面
注意:/etc/nginx/conf.d/ 下面的配置文件将被/etc/nginx/nginx.conf 包含,所有要保证
/etc/nginx/nginx.conf与新建的nginx.conf监听端口不冲突

创建的nginx.conf内容如下:

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        client_max_body_size 1024m;
        location / {
               #一定要和uwsgi里面配置的一致
                uwsgi_pass 127.0.0.1:3033; 
                include uwsgi_params;
        }
        location /static/ {
            root /home/nginx/xxx_app/static/;
            expires 2400h;
        }
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
}

启动nginx

service nginx start

启动django

python3 mangage.py runserver 0.0.0.0:80

访问网页

http://yourip:80

你可能感兴趣的:(nginx+uwsgi部署django应用)