• [Django笔记] uwsgi + nginx 配置


    django 和 nginx 通过 uwsgi 来处理请求,类似于 nginx + php-fpm + php

    安装nginx

    安装配置uwsgi

    pip install uwsgi
    回想php-fpm安装完直接启动就完事了,好像只要配置php的路径
    uwsgi的启动需要一大堆参数,可以写好一个配置文件 uwsgi_conf.ini,下面是一个demo:

    # uwsig使用配置文件启动
    [uwsgi]
    # 项目目录
    chdir=/var/www/path/to/django/
    # 指定项目的application(django 目录的 wsgi.py)
    module=pics.wsgi:application
    # 指定sock的文件路径       
    socket=/var/www/path/to/django/script/uwsgi.sock
    # 进程个数       
    workers=5
    pidfile=/var/www/path/to/django/script/uwsgi.pid
    # 指定IP端口       
    http=127.0.0.1:80
    # 指定静态文件
    static-map=/static=/var/www/path/to/django/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=/var/www/path/to/django/script/uwsgi.log
    

    配置文件解释:

    • 通过 uwsgi [xxx.ini]来启动服务
    • pid, sock, log 三个文件跟这个 ini 文件可以统一在 django 目录下面新建一个script 文件夹存放
    • nginx 是读取sock 来连接 uwsgi
    • pid 文件非常重要, uwsgi 通过 uwsgi --stop [xxx.pid]uwsgi --reload [xxx.pid] 来停止和重启服务
    • 因为uwsgi 是给nginx 做桥接,ip 为127.0.0.1. 我的http端口不是80,因此这里可以使用80

    启动后,可以通过http://127.0.0.1来测试访问 django. (我在linux直接curl 127.0.0.1测试)

    nginx.conf 配置 uwsgi

    本机配置了一个php服务,想通过子路径/pics来访问 django:

    # 指定项目路径uwsgi
    location /pics { 
        include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
        uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
        uwsgi_pass unix:/var/www/path/to/django/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给     
    }
    # 指定静态文件     
    location /pics/static/ {
        alias /var/www/path/to/django/static/;
        index index.html index.htm;
    }
    

    重启nginx nginx -s reload ,大功告成

  • 相关阅读:
    个人总结
    团队作业五
    个人项目五:个人回顾
    第二次冲刺
    第一次冲刺
    猜数字1
    随机数
    个人作业
    课后作业1
    作业
  • 原文地址:https://www.cnblogs.com/dapianzi/p/8126092.html
Copyright © 2020-2023  润新知