• 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

  • 相关阅读:
    2020-CCPC- 长春站
    cf2c(模拟退火 步长控制
    高精乘(fft板子
    2019南京网赛 The beautiful values of the palace(思维,树状数组
    2019ICPC网赛南京站B题 super_log(欧拉降幂
    Monument Tour(以前月赛卡住的签到题,今天突然想起拿出来补一补
    LightOJ 1289 LCM from 1 to n(位图标记+素数筛
    neuoj Blurred Pictures(小思维题
    hdu6219 Empty Convex Polygons (最大空凸包板子
    2018宁夏邀请赛 Continuous Intervals(单调栈 线段树
  • 原文地址:https://www.cnblogs.com/YFree/p/7674939.html
Copyright © 2020-2023  润新知