zoukankan      html  css  js  c++  java
  • django_uWSGI+nginx环境

    1 uWSGI

    作用

    Django 默认使用的是 Python 自带的 simple HTTPServer 提供web服务的,在安全性和效率上都是不行的,只能用作django开发测试。

    WSGI是一个Web服务器(如nginx)与应用服务器(如uWSGI)通信的一种规范(协议),。

    uWSGI负责把HTTP协议转化为WSGI协议,可以使python直接使用

    安装

    [root@webmaster nginx]# pip3 install uwsgi
    Successfully installed uwsgi-2.0.17.1
    
    [root@webmaster nginx]# uwsgi --version
    2.0.17.1
    

      

    配置

    在settings同目录

    uwsgi.ini

    [uwsgi]
    # 配置服务器的监听ip和端口
    socket = 127.0.0.1:9090
    # 配置项目目录(此处设置为项目的根目录)
    chdir = /data/sqlsite
    # 配置入口模块 (django的入口函数的模块,即setting同级目录下的wsgi.py)
    wsgi-file = sqlsite/wsgi.py
    # 开启master, 将会多开一个管理进程, 管理其他服务进程
    master = True
    # 服务器开启的进程数量
    processes = 2
    # 以守护进程方式提供服, 输出信息将会打印到log中
    daemonize = wsgi.log
    # 服务器进程开启的线程数量
    threads = 2
    # 退出的时候清空环境变量
    vacuum = true
    #启动用户,在装uwsgi时已经自动创建
    uid = uwsgi
    # 进程pid
    pidfile = uwsgi.pid
    

      

    命令

    启动

    uwsgi --ini uwsgi.ini 
    

      

    重载

    uwsgi --reload uwsgi/uwsgi.pid
    #django使用自带http服务时,会自动重载配置
    #使用uwsgi时,没有运行python进程,由uwsgi托管,需要重载uwsgi才行
    

      实测不行,改为:

    [root@webmaster sqlsite]# cat run.sh 
    #!/bin/sh
    killall -9 uwsgi;sleep 1;uwsgi --ini sqlsite/uwsgi.ini
    

      

    2 nginx

            location /static {
                alias /data/sqlsite/static;  #指定django的静态文件
                }
                
            location / {
                include  uwsgi_params;
                uwsgi_pass  127.0.0.1:9090;
            }
    

      

    3 admin static文件

    这样的情况下,访问admin,会找不到static文件,因为admin的static文件不在static/下面。所以需要把admin的static迁移过来。

    在static的配置上增加一个STATIC_ROOT配置,意思是所有static的根目录。这样,static聚合时,系统就会把admin的static文件复制过来。

    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/2.1/howto/static-files/
    
    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )
    

      

    python3 manage.py collectstatic
    #执行聚合命令后,在static目录下会出现admin目录
    

      

     4 问题

    在venv中运行的django,和在venv中安装的uwsgi,在外面环境下运行uwsgi出现了5000错误,需要在在venv环境

  • 相关阅读:
    和为S的两个数字
    数字在排序数组中出现的次数
    连续子数组的最大和
    包含min函数的栈
    二进制中1的个数
    变态跳台阶
    android里R.layout.的问题
    eclipse里面设置JVM参数的问题
    perl小记
    机器寻径引导算法(最短路径表)__深搜、栈
  • 原文地址:https://www.cnblogs.com/jabbok/p/9810671.html
Copyright © 2011-2022 走看看