• uWSGI的配置与发布


    参考:   https://www.cnblogs.com/pyyu/p/9481344.html

    一、什么是wsgi, uwsgi, uWSGI

     wsgi

    全称web server gateway interface,wsgi不是服务器,也不是python模块,
    只是一种协议描述web server如何和web application通信的规则。 运行在wsgi上的web框架有bottle,flask,django

      uwsgi

    和wsgi一样是通信协议,是uWSGI服务器的单独协议,用于定义传输信息的类型

      uWSGI

    是一个web服务器,实现了WSGI协议,uwsgi协议

    二、安装uWSGI

    复制代码
    进入虚拟环境venv,安装uwsgi
    (venv) [root@slave 192.168.11.64 /opt]$pip3 install uwsgi
    检查uwsgi版本
    (venv) [root@slave 192.168.11.64 /opt]$uwsgi --version
    2.0.17.1
    #检查uwsgi python版本
    uwsgi --python-version

    三、uWSG简单运行

    #启动一个python
    uwsgi --http :8000 --wsgi-file test.py
    http :8000: 使用http协议,端口8000
    wsgi-file test.py: 加载指定的文件,test.py
    #test.py
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World"] # python3

    热加载python程序

    在启动命令后面加上参数
    uwsgi --http :8088 --module mysite.wsgi --py-autoreload=1 
    #发布命令
    command= /home/venv/bin/uwsgi --uwsgi 0.0.0.0:8000 --chdir /opt/mysite --home=/home/venv --module mysite.wsgi
    #此时修改django代码,uWSGI会自动加载django程序,页面生效

    运行django程序

    #mysite/wsgi.py  确保找到这个文件
    uwsgi --http :8000 --module mysite.wsgi
    module mysite.wsgi: 加载指定的wsgi模块

    四、使用.ini配置文件加载python程序

    4.1  uwsgi支持ini、xml等多种配置方式,本文以 ini 为例, 在/etc/目录下新建uwsgi_nginx.ini,添加如下配置:

    # mysite_uwsgi.ini file
    [uwsgi]
    
    # Django-related settings
    # the base directory (full path)
    chdir           = /opt/mysite
    # Django's wsgi file
    module          = mysite.wsgi
    # the virtualenv (full path)
    home            = /opt/venv
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    processes       = 1
    # the socket (use the full path to be safe
    socket          = 0.0.0.0:8000
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    #添加配置选择
    [uwsgi]
    #配置和nginx连接的socket连接
    socket=127.0.0.1:8002
    #配置项目路径,项目的所在目录
    chdir=/home/pp1709/wangsen_work/wsftp/myweb
    #配置wsgi接口模块文件路径
    wsgi-file=myweb/wsgi.py
    #配置启动的进程数
    processes=4
    #配置每个进程的线程数
    threads=2
    #配置启动管理主进程
    master=True
    #配置存放主进程的进程号文件
    pidfile=uwsgi.pid
    #配置dump日志记录
    daemonize=uwsgi.log`

    4.2 指定配置文件启动

    uwsgi --ini  /etc/uwsgi_nginx.ini  #不加--ini也可以
    • 显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功。
    • 通过 ps -ef|grep uwsgi 查看确认是否uwsgi启动。

    4.3 停止运行uwsgi,通过包含主进程编号的文件设置停止项目

     >  uwsgi --stop uwsgi.pid

    4.4 重启uwsgi

    >  uwsgi --reload uwsgi.pid
  • 相关阅读:
    iOS开发——判断是否第一次启动
    iOS开发——关于开发者账号引发的血案
    The identity used to sign the executable is no longer valid.
    iOS开发 missing iOS distribution signing identity for 。。。
    iOS开发实现Label中多颜色多字体
    10.8.5如何升级(app store 出错 请稍后重试 100)
    XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法
    mysql索引的类型和优缺点
    .htaccess Rewrite apache重写和配置
    mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库
  • 原文地址:https://www.cnblogs.com/jinfanfu/p/10732817.html
Copyright © 2020-2023  润新知