简单聊一下Uwsgi和Django的爱恨情仇
阅读原文时间:2023年07月10日阅读:2
  • 项目目录:/root/app

  • Uwsgi的配置文件

    [uwsgi]

    Python扩展包安装的地方

    pythonpath=/usr/local/src/python3/lib/python3.5/site-packages

    Django根目录

    chdir=/root/app

    wsgi.py跟根目录的相对路径

    wsgi-file=app/wsgi.py

    设置Django的配置文件

    env = DJANGO_SETTINGS_MODULE=app.settings

    启动模块

    module=app.wsgi:application

    配置生成的sock文件的权限

    chmod-socket = 664

    监听的IP和端口

    socket=:8081

    允许主线程存在

    master=true

    开启的进程数量

    processes=2

    监控python模块mtime来触发重载 (只在开发时使用)

    py-autoreload=1

    在每个worker而不是master中加载应用

    lazy-apps=true

    设置用于uwsgi包解析的内部缓存区大小为64k。默认是4k。

    buffer-size = 32768

    允许用内嵌的语言启动线程。这将允许你在app程序中产生一个子线程

    enable-threads = true

    多站模式

    vhost=true

    多站模式时不设置入口模块和文件

    no-site=true

    子进程数

    workers=2
    reload-mercy=10

    当服务器退出的时候自动清理环境,删除unix socket文件和pid文件

    vacuum=true

    一个请求花费的时间超过了这个harakiri超时时间,那么这个请求都会被丢弃,并且当前处理这个请求的工作进程会被回收再利用(即重启)

    harakiri = 60
    max-requests=1000
    limit-as=512
    buffer-size=30000

    设置socket的监听队列大小(默认:100)

    listen = 120

    指定pid文件

    pidfile=/var/run/uwsgi_8081.pid

    使进程在后台运行,并将日志打到指定的日志文件或者udp服务器

    daemonize=/var/run/uwsgi_8081.log

    设置最大日志文件大小

    log-maxsize = 5000000

    禁用请求日志记录

    disable-logging = true

  • 启动命令:uwsgi --ini /root/app/uwsgi.ini

  • 目录结构

    ├── app
    │   ├── init.py
    │   ├── pycache
    │   │   ├── init.cpython-35.pyc
    │   │   ├── settings.cpython-35.pyc
    │   │   ├── urls.cpython-35.pyc
    │   │   └── wsgi.cpython-35.pyc
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── appv1
    │   ├── admin.py
    │   ├── apps.py
    │   ├── init.py
    │   ├── migrations
    │   │   └── init.py
    │   ├── models.py
    │   ├── pycache
    │   │   ├── admin.cpython-35.pyc
    │   │   ├── init.cpython-35.pyc
    │   │   └── models.cpython-35.pyc
    │   ├── tests.py
    │   └── views.py
    ├── manage.py
    └── uwsgi.ini

  • nginx配置

    upstream apachephp {
    server 127.0.0.1:8081;
    }

    server {
    listen 80;
    server_name luffy.cyqit.com;

    root   html;
    index  index.html index.htm index.php;
    
    include /application/nginx/conf/conf.d/gzip/gzip.conf;
    
    ## send request back to apache ##
    location / {
        include  uwsgi_params;
        uwsgi_pass  apachephp;
        uwsgi_param UWSGI_SCRIPT app.wsgi;
        uwsgi_param UWSGI_CHDIR /root/app/;
        index  index.html index.htm;
        client_max_body_size 35m;

    }
    }

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章