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

一、什么是wsgi, uwsgi, uWSGI

wsgi

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

uwsgi

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

uWSGI

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

二、安装uWSGI

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

三、uWSG简单运行

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

热加载python程序

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

运行django程序

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

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

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

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

4.2 指定配置文件启动

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

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

  1. > uwsgi --stop uwsgi.pid

4.4 重启uwsgi

  1. > uwsgi --reload uwsgi.pid

uWSGI的配置与发布的更多相关文章

  1. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    nginx+uWSGI+django+virtualenv+supervisor发布web服务器   导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...

  2. 12,nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架 ...

  3. Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    目录 Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器 crm django项目部署流程 使用supervisro启动uwsgi,退出虚 ...

  4. nginx+uWSGI+django+virtualenv+supervisor发布web服务器流程

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求)基于wsgi运行的框架有 ...

  5. uwsgi 安装配置

    安装uwsgi# pip install uwsgi 配置uwsgi:首先要明确的是,如果你喜欢用命令行的方式(如shell)敲命令,那可以省去任何配置.但是,绝大多数人,还是不愿意记那么长的命令,反 ...

  6. uwsgi常用配置

    一.安装方式 1.wget 可以去官网:https://pypi.python.org/pypi/uWSGI/ 下载对应的版本   tar -xvf uwsgi-2.13.1.tar.gz cd uw ...

  7. CentOS7 + Django2.1 + uwsgi + nginx配置

    假设已经可以运行Django项目,可以runserver.也已经安装了uwsgi和nginx 现在需要进行配置. 刚开始进行uwsgi测试就不行,提示bash:'uwsgi' Command not ...

  8. Win2008R2配置WebDeploy发布网站

    一.配置服务器 1.安装管理服务 2.点击管理服务进行配置 二.安装WebDeploy 2.1通过离线安装包方式安装: https://www.iis.net/downloads/microsoft/ ...

  9. nginx +uwsgi + django配置

    一 安装 nginx 二 安装 uwsgi  ,pip install uwsgi 三 配置nginx 打开 nginx.conf文件, location / { # root html; # ind ...

随机推荐

  1. 页面添加锚点后如何点击不改变URL?

    直接奔主题,前端简单地锚点实现方法大家都会,无非就是在把 a 标签的 href 写成想要跳到的元素的id ,比如点击 <a href="#box"></a> ...

  2. 在android studio写car的app代码时遇到的问题

    1 Cannot resolve symbol '@drawable/XXX'等问题解决办法方法1."Build " -> "Clean project" ...

  3. 使用ueditor配置后台接口

    因为后台是java,所以针对的是jsp版本的ueditor. 工程中需要导入jsp目录lib下的jar包.如果是maven管理的工程,可以导入jar包. 上传图片的功能的话,需要后台配置正确.如果需要 ...

  4. python学习1---列表、矩阵、数组

    1.列表与数组区别 numpy数组的所有元素类型是相同的,而列表的元素类型是任意的. 2.numpy数组与矩阵区别 矩阵必须是二维的,数组可以是多维的,matrix是array的一个分支. matri ...

  5. css flex方法标题左右两边平衡线

    <html> <div class="title"> <div class="line"></div> < ...

  6. 64位ubuntu16.04系统安装网易云音乐

    64位ubuntu16.04系统安装网易云音乐 1.官网下载安装包:netease-cloud-music_1.1.0_amd64_ubuntu.deb https://music.163.com/# ...

  7. JAVA IO流 InputStream流 Read方法

    read()首先我们来看这个没有参数的read方法,从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中,返回值为0到255的int类型的值,返回值为字符的ACSII值(如 ...

  8. 20164322韩玉婷 -----EXP3 免杀原理与实践

    基础问题回答 1.杀软是如何检测出恶意代码的? (1)基于特征码的检测 特征码是能识别一个程序是一个病毒的一段不大于64字节的特征串.如果一个可执行文件包含这样的特征码则被杀毒软件检测为是恶意代码. ...

  9. 不同系统、不同存储格式(textfile, parquet)数据的传递

    描述: 本地测试环境hive中有数据,存储格式为textfile,现在要上传到公司开发环境,存储格式为parquet, 如何实现??? tb_textfile表---> local file - ...

  10. JavaScript如何让1+1=11;{ } + { } = 2

    delete (          ) delete (          ) ;var  n = new Number( 1 ) console.log( n + 1 )   // 2  #请在括号 ...