首页 > 编程语言 >Python uWSGI 安装配置

Python uWSGI 安装配置

时间:2023-05-01 20:33:06浏览次数:57  
标签:0.1 127.0 Python wsgi -- uWSGI 安装 uwsgi

  本文主要介绍如何部署简单的 WSGI 应用和常见的 Web 框架。

  以 Ubuntu/Debian 为例,先安装依赖包:

apt-get install build-essential python-dev

 

1.Python 安装 uWSGI

  1、通过 pip 命令:

pip install uwsgi

  2、下载安装脚本:

curl http://uwsgi.it/install | bash -s default /tmp/uwsgi

  将 uWSGI 二进制安装到 /tmp/uwsgi ,你可以修改它。

  3、源代码安装:

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
make

  安装完成后,在当前目录下,你会获得一个 uwsgi 二进制文件。

 

2.第一个 WSGI 应用

  让我们从一个简单的 "Hello World" 开始,创建文件 foobar.py,代码如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

  uWSGI Python 加载器将会搜索的默认函数 application 。

  接下来我们启动 uWSGI 来运行一个 HTTP 服务器,将程序部署在HTTP端口 9090 上:

uwsgi --http :9090 --wsgi-file foobar.py

 

  添加并发和监控

  默认情况下,uWSGI 启动一个单一的进程和一个单一的线程。

  你可以用 --processes 选项添加更多的进程,或者使用 --threads 选项添加更多的线程 ,也可以两者同时使用。

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2

  以上命令将会生成 4 个进程, 每个进程有 2 个线程。

  如果你要执行监控任务,可以使用 stats 子系统,监控的数据格式是 JSON:

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

  我们可以安装 uwsgitop(类似 Linux top 命令) 来查看监控数据:

pip install uwsgitop

 

3.结合 Web 服务器使用

  我们可以将 uWSGI 和 Nginx Web 服务器结合使用,实现更高的并发性能。

  一个常用的nginx配置如下:

location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:3031;
}

  以上代码表示使用 nginx 接收的 Web 请求传递给端口为 3031 的 uWSGI 服务来处理。

  现在,我们可以生成 uWSGI 来本地使用 uwsgi 协议:

uwsgi --socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

  如果你的 Web 服务器使用 HTTP,那么你必须告诉 uWSGI 本地使用 http 协议 (这与会自己生成一个代理的–http不同):

uwsgi --http-socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

 

3.1 部署 Django

  Django 是最常使用的 Python web 框架,假设 Django 项目位于 /home/foobar/myproject:

uwsgi --socket 127.0.0.1:3031 --chdir /home/foobar/myproject/ --wsgi-file myproject/wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

  --chdir 用于指定项目路径。

  我们可以把以上的命令弄成一个 yourfile.ini 配置文件:

[uwsgi]
socket = 127.0.0.1:3031
chdir = /home/foobar/myproject/
wsgi-file = myproject/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191

  接下来你只需要执行以下命令即可:

uwsgi yourfile.ini

 

3.2 部署 Flask

  Flask 是一个流行的 Python web 框架。

  创建文件 myflaskapp.py ,代码如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "<span style='color:red'>I am app 1</span>"

  执行以下命令:

uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191

 


 

标签:0.1,127.0,Python,wsgi,--,uWSGI,安装,uwsgi
From: https://www.cnblogs.com/lizexiong/p/17366964.html

相关文章

  • CentOS 7的下载安装配置教程
    CentOS7的下载安装配置教程  CentOS主流版本有7和8,我们这里选择CentOS7进行安装,因为现在8已经不更新了,CentOS8是一个介于实验性版本和稳定商业版本之间的产物,是最后一个版本,一般情况下,我们更追求稳定性,所以我们选择CentOS7。相关下载:  CentOS7镜像:http://mirrors.......
  • [oeasy]python0145_版本控制_git_备份还原
    git版本控制回忆上次内容上次我们了解了try的完全体try尝试运行 except发现异常时运行的代码块 else没有发现异常时运行的代码块 finally无论是否发现异常最终都要运行的代码块  ​ 添加图......
  • DataWindowHTTP(三)服务器安装-WEBSERVER
    本组件需要的一个webserver+PHP环境,版本要求为apache2.4+PHP8.0。可以通过两种方式安装:自动安装包(一键安装包)一键安装包有:XAMPP,PhpStudy,Appserv,wampserver,wnmp,DedeAMPZ,LNMP(linux)。到目前较多为apache2.4+php7.x,很快应该会支持到最新的php8.x。二.手工安装配置手工配置,不依赖其他工......
  • 虚拟机的安装以及win7镜像和配置
    1.虚拟机下载链接:https://pan.baidu.com/s/1GMSsB3Kq89qAMqdwyuloiA 百度网盘提取码:52zl win7镜像链接:2.浏览器搜网址 3.这里我们选择第二链接个因为大家现在基本上都可以用x64版本的,他这个的意思是这个win7是旗舰版本而且是打了补丁的方便大家以后再虚拟级是真实机中传文......
  • python实现跨服务器上传文件
    项目背景由于需要将算法处理过的视频放进存储服务器上,所以涉及到了跨服务器上传视频、图片等代码实现@api_view(['POST'])defupload(request):#定义一个固定的返回值response={'state':1,'des':'normal'}#获取参数ifrequest.method=='POST':......
  • doceker 安装
     CentOSDocker安装Docker支持以下的CentOS版本:CentOS7(64-bit)CentOS6.5(64-bit)或更高的版本 前提条件目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS7上,要求系统为64位、系统内核版本为3.10以上。Docker运行在CentOS-6.5或更高的版本的Ce......
  • centos7 安装centos桌面
    一、输入命令yumgroupinstall"GNOMEDesktop""GraphicalAdministrationTools"二、设置系统启动等级。systemctlget-default#获取当前系统运行形式,会显示multi-user.target(命令行终端),或者:graphical.targetsystemctlset-defaultgraphical.target#设置默认启动为图形界面,re......
  • Centos7 安装 python3.9
    今天差点把服务器搞砖了,3.6无法满足要求,3.7一直装不上。重装之前遇到这篇文章,搞定Centos7系统安装Python3.9图文教程......
  • P01 Maven安装与配置
    目录安装前提下载Maven包解压配置环境变量关键配置配置本地仓库地址配置阿里云提供的镜像仓库配置Maven工程的基础JDK版本IDEA下配置Maven安装前提本地已安装配置JDK,可以在cmd窗口,输入jave-version进行查看Maven官网地址:https://maven.apache.org/下载地址:https:......
  • 使用 Docker Compose 安装 MongoDB
    最近学习Docker,试着在Docker里安装MongoDB,按照镜像mongo文档一顿操作猛如虎。快速开始写个docker-compose.yml文件:version:'3.8'services:db:image:mongocontainer_name:mongodb-containerports:-'27017:27017'......