python安装-Python uWSGI 安装配置
Python uWSGI 安装配置
本文主要介绍如何部署简单的 WSGI 应用和常见的 Web 框架。
以 Ubuntu/Debian 为例,先安装依赖包:
apt-get install build-essential python-dev
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 二进制文件。
第一个 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
结合 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
部署 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
部署 Flask
Flask 是一个流行的 Python web 框架。
创建文件 myflaskapp.py ,代码如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "I am app 1"
执行以下命令:
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
python安装-Python uWSGI 安装配置相关推荐
- 怎么检查python是否安装成功-检查python以及django是否安装配置成功
首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...
- 【CV】Python下载安装及环境变量配置教程
目录 Python下载 Python安装 Python环境变量配置 Python下载 可通过https://www.python.org/downloads/下载 1.进入网页后点击Windows,其 ...
- uwsgi 安装报错 plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
1. Python3 安装 uwsgi 报错 直接使用命令 sudo pip3 install uwsgi 安装如下错误: ubuntu@ubuntu:~/Downloads$ sudo pip3 i ...
- python3.6.2怎样安装,python 3.6.2 安装配置方法图文教程
python 3.6.2 安装配置方法图文教程 Windows下Python(pip)环境搭建(3.6)图解,供大家参考,具体内容如下 1.下载最新的Python安装:3.6.2 2.安装时不要选择默 ...
- python解释器的安装步骤-Python本地及虚拟解释器配置过程解析
1.准备工作 安装好Pycharm2017版本 电脑上安装好Python解释器 2.本地解释器配置 配置本地解释器的步骤相对简洁直观: (1)单击工具栏中的设置按钮. (2)在Settings/Pre ...
- Sublime Text 3 安装Package Control及配置Python环境
一 .安装Package Control 代码安装:使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码 sublime text3: import u ...
- windows10安装python环境_在windows10下安装python(配置环境变量),Windows10
建议使用:anaconda(环境管理和包管理)+Pycharm (强大的IDE开发工具) python环境变量设置: window系统高级设置-> 系统环境变量里 变量名: PYTHONPATH ...
- python网页运行环境_Python小牛叔Web开发1:安装Visual Studio Code配置Python运行环境...
本系列是Python小牛叔Web开发系列,以Django为框架介绍如何使用Python来开发Web应用,本教程适合对于Web开发有基本知识的入门者. 1.安装Visual Studio Code编辑器 ...
- 安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)...
首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址: https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载. ...
最新文章
- linux 使用sendmail发送邮件
- 远观近看阿里云ET平台 如何开启AI落地新风潮
- C#调用dll提示试图加载格式不正确的程序解决方法
- C++字符串反转(C++11)
- ActiveMq消费端实现集群部署
- python 连接oracle_常用的Python库,给大家分享一下!
- 【codevs2287】火车站,第一个A掉的钻石题(迟来的解题报告)
- MapReduce job任务源码提交流程
- 凸优化第七章统计估计 7.5实验设计
- 中国99%的白领以及他们的家庭即将面临破产
- Magic3D(MyGUI)简单使用
- 世间什么才是最珍贵的?
- 【VulnHub靶机渗透】一:BullDog2
- printf 打印结构体成员函数出错原因分析
- MySQL获取指定日期为所在月份的第几周
- 景联文科技|浅谈常见的语音标注方法
- Hbuildx创建vue3项目
- 用爬虫爬取某妹子图片网站图片
- 基于水平投影,垂直投影的字符图像分割思路和代码实现
- Linux的recovery分区编译,Recovery移植之高级小白教程——Recovery的编译
热门文章
- Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Request body too large
- Tosca 注意事项(持续更新)
- [Done][DUBBO] dubbo Thread pool is EXHAUSTED!
- 利用 Python 插件 xlwings 读写 Excel
- 《浪潮之巅》十八十九章笔记
- Effictive Java学习笔记1:创建和销毁对象
- 关于datetimepicker和vue v-model指令双向数据绑定失败的问题
- c++ 第五次作业(计算器第三步)
- 【精心挑选】推荐几款非常棒的 jQuery 全景图片展示插件
- UVA11870 Antonyms【并查集】