zoukankan      html  css  js  c++  java
  • nginx + uwsgi 部署Django项目

    nginx + uwsgi 部署Django项目

    前提条件:

    • 有一个能正常运行的django项目
    • 已安装nginx
    • 已安装uwsgi

    我的django项目名称为:hello,所在目录是:/media/p1/proj/py/hello/

    通过uwsgi启动django项目

    切换工作目录到hello项目所在目录

    # cd /media/p1/proj/py/hello/
    

    启动uwsgi

    # uwsgi --http 127.0.0.1:8080 --file hello/wsgi.py --static-map=/static=static
    

    # uwsgi --http :8080 --file hello/wsgi.py --static-map=/static=static
    

    此时可以通过访问 http://127.0.0.1:8080/ 看看是否成功。

    配置uwsgi

    这一步可以避免每一次启动uwsgi都要指定那么多选项。
    我的配置文件创建于:/etc/uwsgi/uwsgi.ini

    # uwsig使用配置文件启动
    [uwsgi]
    # 项目目录
    chdir=/media/p1/proj/py/hello/
    # 指定项目的application
    module=hello.wsgi:application
    # 指定sock的文件路径       
    socket=/media/p1/proj/py/script/uwsgi.sock
    # 进程个数       
    workers=1
    pidfile=/media/p1/proj/py/script/uwsgi.pid
    # 指定IP端口       
    http=127.0.0.1:9090
    # 指定静态文件
    static-map=/static=/media/p1/proj/py/hello/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/log/uwsgi/uwsgi.log
    

    nginx配置

    server {
            listen       80;
            server_name  a.test.haoxueba.net;
    
            location / {
                    include uwsgi_params;
                    #uwsgi_pass 127.0.0.1:9090;
                    uwsgi_pass unix:/media/p1/proj/py/script/uwsgi.sock;
                    #uwsgi_param UWSGI_PYHOME test.py;
                    uwsgi_param UWSGI_SCRIPT hello.wsgi;
                    #uwsgi_param UWSGI_CHDIR;
            }
    
            error_page 404 /404.html;
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
    }
    

    试一试

    启动uwsgi

    uwsgi --ini /etc/uwsgi/uwsgi.ini

    和刚开始启动的方式不同,我们现在指定了配置文件,就不需要再每次设置那么多选项了。

    更新nginx配置:nginx -s reload或启动nginx:nginx

    在浏览器地址栏输入:http://a.test.haoxueba.net 看看我们期待的结果会不会出现?

    注意:我当初做到这一步,并没有成功,检查发现uwsgi.sock文件没有创建,原来是权限问题,我将其目录开放了写权限,就OK了。
    设置目录可写:chmod +w /media/p1/proj/py/script

  • 相关阅读:
    获取设备的UUID
    关于获取基站信息总结
    【转】获取CID 和 LAC的方法
    js(javascript)与ios(Objective-C)相互通信交互
    ios面试题
    iOS 知识-常用小技巧大杂烩
    iOS时间格式的转换
    PresentViewController切换界面
    宏文件
    iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
  • 原文地址:https://www.cnblogs.com/YFree/p/7674939.html
Copyright © 2011-2022 走看看