zoukankan      html  css  js  c++  java
  • centos7使用nginx+uwsgi部署python django项目

    在django框架中,我们一般直接通过python manage.py runserver来启动提供服务,但是如果生产环境此方法不可行,而且容易导致异常退出,于是需要借助uwsgi来作为守护进程。

    操作思路:

    • 服务器中安装uwsgi插件
    • 新建uwsgi.ini文件,写入uwsgi需要的参数
    • 安装nginx,并配置uwsgi_pass 127.0.0.1:9496代理转发
    • 启动nginx、uwsgi

    安装uwsgi插件

    pip install uwsgi
    

    新建uwsgi.ini文件,写入uwsgi需要的参数

    可直接在代码根目录中创建uwsgi.ini文件,参考如下:

    [uwsgi]
    socket = 127.0.0.1:9496
    chdir = /home/dengzhixu/crawl_data
    wsgi-file = /home/dengzhixu/crawl_data/yibo_crawl_data/wsgi.py
    processes = 4
    threads = 2
    #stats = 0.0.0.0:9496
    buffer-size = 65536
    #daemonize = /var/log/uwsgi.log
    

    安装nginx,配置uwsgi_pass转发

    安装nginx步骤省略,可直接去lnmp.org下载集成nginx
    nginx添加vhost配置文件,参考如下

    server
        {
            listen 9495;
            #listen [::]:;
            server_name crawl.com ;
            index index.html index.htm default.html default.htm;
            root /home/dengzhixu/crawl_data;
            include rewrite/other.conf;
    
            location / {            
                include  uwsgi_params;
                uwsgi_pass  127.0.0.1:9496;
                uwsgi_param UWSGI_SCRIPT ./yibo_crawl_data/demosite.wsgi;
                uwsgi_param UWSGI_CHDIR /home/dengzhixu/crawl_data;
                index  index.html index.htm;
                client_max_body_size 35m;
             }
             
            location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
            location ~ .*.(js|css)?$
            {
                expires      12h;
            }
            location ~ /.well-known {
                allow all;
            }
            location ~ /.
            {
                deny all;
            }
            access_log  /home/wwwlogs/crawl.com.log;
    

    启动nginx、uwsgi

    nginx
    uwsgi -d --ini /home/dengzhixu/crawl_data/uwsgi.ini
    

    配置systemd自启动

    创建一个systemd服务文件/lib/systemd/system/uwsgi.service

    [Unit]
    Description=uWSGI Emperor
    #After=syslog.target
    After=network.target
    
    [Service]
    #PIDFile=/run/uwsgi.pid
    ExecStart=/usr/local/bin/uwsgi --ini /home/dengzhixu/crawl_data/uwsgi.ini
    #ExecStop=/usr/local/bin/uwsgi --stop $MAINPID
    #ExecReload=/usr/local/bin/uwsgi -d --reload $MAINPID
    # Requires systemd version 211 or newer
    #RuntimeDirectory=uwsgi
    Restart=always
    KillSignal=SIGQUIT
    Type=notify
    #Type=forking
    StandardError=syslog
    NotifyAccess=all
    
    [Install]
    WantedBy=multi-user.target
    
    

    开启自启动,并启动

    systemctl start uwsgi.service
    systemctl enable uwsgi.service
    

    参考文献:

    https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html

  • 相关阅读:
    PO_PO系列
    PO_PO系列
    PO_PO系列
    BIP_BI Publisher Administrator设定Configuration/Font/Currencies(案例)
    All_从PO
    BEvent_客制化BusinessEvent通过Workflow Event接受消息传递(案例)
    BEvent_客制化BusinessEvent通过PLSQL Procedurer接受消息传递(案例)
    Form_Form Builder编译fmb/library/menu方式总结(汇总)
    GL_Oracle Erp常用的报表(汇总)
    PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)
  • 原文地址:https://www.cnblogs.com/jiba/p/13637711.html
Copyright © 2011-2022 走看看