美文网首页Django开发随笔
Django+uWSGI+nginx部署

Django+uWSGI+nginx部署

作者: 天才一般的幼稚 | 来源:发表于2019-03-03 19:48 被阅读0次

    写在前面:今天按照教程把项目部署一下,但是出现了例如启动uwsgi或者启动了nginx频繁报错的现象。我都是通过重启Pycharm或者重启机器实现的。


    一、服务器环境配置

    创建虚拟环境等就不再赘述。
    更改setting.py文件

    DEBUG = False
    ALLOW_HOSTS=['*'] 表示可以访问服务器的ip

    此时的静态文件是无法访问的,所有的图片视频以及样式效果都是没有的。

    二、配置uWSGI

    1.1、安装

    pip install uwsgi
    

    1.2、配置

    (1)在项目目录下新建uwsgi.ini用于填写配置文件。

    [uwsgi]
    socket=外网ip:端口(使用nginx连接时,使用socket)
    http=外网ip:端口(直接做web服务器,使用http)
    chdir=项目根目录
    wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
    processes=4
    threads=2
    master=True
    pidfile=uwsgi.pid
    daemonize=uswgi.log
    

    举例如下:

    [uwsgi]
    socket=192.168.234.128:8000
    chdir=/home/tf/hdidentify
    wsgi-file=hdidentify/wsgi.py
    processes=4
    threads=2
    master=True
    pidfile=uwsgi.pid
    daemonize=uswgi.log
    

    (2)启动uwsgi

    启动:uwsgi --ini uwsgi.ini
    停止:uwsgi --stop uwsgi.pid
    重启:uwsgi --reload uwsgi.pid
    

    三、配置nginx

    (1)下载源码包
    下载地址:http://nginx.org/download/
    这里选择的时1.8.0版本
    (2)解压源码包

    tar -zxf nginx-1.8.1.tar.gz
    

    (3)安装配置变量
    1、安装依赖包

    yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
    

    2、执行configure,进入nginx路径,执行:

    ./configure --prefix=/usr/local/nginx       #安装路径为/usr/local/nginx
    

    3、编译运行

    make
    make install
    

    4、启动运行

    (tensorflow) [tf@tf nginx]$ sudo sbin/nginx
    (tensorflow) [tf@tf hdidentify]$ ps -aux | grep nginx
    root       9002  0.0  0.0  24880   780 ?        Ss   18:10   0:00 nginx: master process sbin/nginx
    nobody     9003  0.0  0.0  27408  1548 ?        S    18:10   0:00 nginx: worker process
    tf         9137  0.0  0.0 112712   972 pts/0    R+   18:23   0:00 grep --color=auto nginx
    
    正常启动

    5、停止

    ./nginx -s stop
    

    6、编辑配置文件

    server {
            listen       80;
            server_name  tensorflow;
            # 在server下添加新的location项,指向uwsgi的ip与端口
            location / {
                include uwsgi_params;  # 将所有的参数转到uwsgi下
                uwsgi_pass  192.168.234.128:8000;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    

    四、配置静态文件

    (1)在nginx配置文件中加上静态文件的location

            location /static {
                alias /var/www/tf/static;
            }
    

    (2)在服务器上创建目录结构并修改权限

    (tensorflow) [tf@tf hdidentify]$ sudo mkdir -r /var/www/tf/static
    (tensorflow) [tf@tf hdidentify]$ sudo chmod 777 /var/www/tf/static
    
    修改777权限

    (3)修改settings文件

    STATIC_ROOT='/var/www/test5/static/'
    STATIC_URL='/static/'
    

    (4)收集所有静态文件到static_root指定目录:python manage.py collectstatic


    正在收集

    (5)重启nginx、uwsgi


    部署成功!

    参考资料:黑马程序员-python就业班Django部分(网盘资源,无链接分享,侵删)

    相关文章

      网友评论

        本文标题:Django+uWSGI+nginx部署

        本文链接:https://www.haomeiwen.com/subject/uksmuqtx.html