uWsgi做为一款应用服务器,其安装配置是非常简单的。

一、安装

  • 虚拟环境安装
pip install uwsgi

  • 源码安装
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
make

  • 测试

创建一个wsgi应用:

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

如您所见,它由单个Python函数组成。之所以称为“应用程序”,是因为它可以uWSGI加载器加载。

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

# 在虚拟环境中启动uwsgi
uwsgi --http 127.0.0.1:9000 --wsgi-file example.py

打开浏览器,输入:http://127.0.0.1:9000

图1 hello world

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

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

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

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

二、配置

uWSGI支持多种与Web服务器集成的方法。它也能够自己处理HTTP请求。但在实际的生产环境中,一般会配合nginx或apache使用,咱们以nginx为例,来看一下如何配置。

1. nginx的配置

通常,您只需要包含uwsgi_params文件(包含在nginx发行版中),并使用uwsgi_pass指令设置TCP套接字的地址即可

server {# 监听端口listen 80;# 可以是ip地址或域名server_name www.blog.com;# 动态请求nginx转发给uwsgilocation / {# 转发端口必须和uwsgi配置文件中socket端口一致uwsgi_pass      127.0.0.1:8000; include uwsgi_params; }# 静态资源所在位置,nginx自己处理location /static {alias /var/www/online/static/;}
}

nginx安装完毕后,自带一个uwsgi_params文件:

图2 nginx自带uwsgi_params文件

uwsgi_params文件内容:

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

这个文件中包含了转发请求时要携带的内容:查询字符串、请求方法、内容类型等

修改了配置文件,记得重启nginx服务。

2. uWsgi服务器配置

和nginx配合使用,uwsgi是socket套接字的方式启动,而不是以http服务器启动。启动方式有两种:命令行和配置文件。

  • 命令行方式启动
uwsgi --socket 127.0.0.1:9000 --wsgi-file example.py --master --processes 4 --threads 2 

但这种方式写起来复杂,易出错,不能重用,所以一般使用这种方式,只是用于调试,一旦调试正确,我们就可以使用配置文件进行配置,命令行的每一个参数对应配置文件的一行。

  • 配置文件

uwsgi支持以以下几种文件方式加载配置:

uwsgi --ini http://uwsgi.it/configs/myapp.ini # HTTP
uwsgi --xml - # standard input
uwsgi --yaml fd://0 # file descriptor
uwsgi --json 'exec://nc 192.168.11.2:33000' # arbitrary executabl

3.INI文件

.INI文件是许多应用程序使用的标准事实上的配置格式。它由[section]s和key=value对组成。

[uwsgi]
socket = 127.0.0.1:9000
wsgi-file = example.py
master = true
threads = 2[app1]
.....

默认情况下,uWSGI使用该[uwsgi]部分,但是您可以在使用语法加载INI文件时指定另一个部分名称filename:section

uwsgi --ini uconfig.ini:app1 

注意:

  • 配置文件中空格无所谓,几个都行
  • 以分号或#号开头的是注释
  • 启动使用命令: uwsgi --ini uconfig.ini,等价于 uwsgi uconfig.ini

4.XML文件

根节点应为<uwsgi>和选项值文本节点。

<uwsgi><socket>127.0.0.1:9000</socket><master/><wsgi-file>example.py</wsgi-file><threads>3</threads>
</uwsgi>

一个xml文件中可以朵儿<uwsgi>节点,可以通过制定不同id属性加以区分,要选用不同的节,可以再文件名后加冒号再跟id属性。加载xml配置文件:

# 两种方式等价
uwsgi myconf.xml
uwsgi --xml myconf.xml

5.JSON文件

JSON文件应表示一个具有一对键值对的对象,键为“ uwsgi”,值为配置变量的对象。支持内置JSON列表,布尔值和数字类型。

{"uwsgi": {"socket": ["127.0.0.1:8000"],"master": true,"workers": 3},"app1":{....}
}

加载方式:

uwsgi --json myconf.json:app1 # 根据节的名字加载

6.常见参数

表1中列出了常用配置参数

表1 uwsgi常用配置参数

uwsgi也可以加载很多插件,其中在python开发中,用得到是python插件,参数:

下一节中,我们会说一下在Django和Flask项目中如何配置。

uwsgi指定python路径_uWsgi服务器(2)--安装配置相关推荐

  1. uwsgi指定python路径_uwsgi-安装实操

    先确保当前有的包有哪些 [root@ecs-python01 ~]# pip3 list DEPRECATION: The default format will switch to columns ...

  2. pycharm指定python路径

    pycharm指定python路径,pycharm配置python环境的方法是: 1.依次点击[File].[Project Interpreter]: 2.点击[Show All],选择[Exist ...

  3. Nginx作为web服务器的安装配置

    Nginx作为web服务器的安装配置 (关注官方网站http://nginx.org/)   Nginx简介 是一个高性能的 HTTP 和 反向代理服务器,由俄罗斯的程序设计师Igor Sysoev所 ...

  4. Linux与云计算——第二阶段Linux服务器架设 第八章:FTP服务器架设—安装配置FTP服务和客户端配置...

    Linux与云计算--第二阶段Linux服务器架设 第八章:FTP服务器架设-安装配置FTP服务和客户端配置 安装Vsftpd [1] 安装并配置Vsftpd. [root@server ~]# yu ...

  5. Weblogic服务器证书安装配置 | Weblogic SSL

    Weblogic服务器证书安装配置 | Weblogic SSL   开始之前 Weblogic内建JDK安装,为Weblogic安装配置服务器证书需要使用Java的keytool工具.在Weblog ...

  6. 服务器dump文件位置,为服务器核心安装配置内存转储文件

    为服务器核心安装配置内存转储文件 10/17/2017 本文内容 适用于: Windows server 2022.Windows server 2019 Windows Server 2016 使用 ...

  7. excel服务器客户端在哪个文件夹,excel服务器客户端安装配置

    excel服务器客户端安装配置 内容精选 换一换 安装配置Agent成功,需要等待2分钟,控制台上才会有主机监控数据.如果过了5min在总览页面还未看到"裸金属服务器",则需要排查 ...

  8. 织梦网站服务器配置,织梦在服务器的安装配置

    织梦在服务器的安装配置 内容精选 换一换 目标服务器已安装操作系统,并且处于联网状态.目标服务器已安装鲲鹏编译插件. Cloud-Init是开源的云初始化工具,使用安装了Cloud-Init的镜像创建 ...

  9. centos php github,在CentOS服务器上安装配置SpeedTest测速软件

    本文讲述在CentOS 7服务器上安装配置SpeedTest测速软件.SpeedTest网站是全球范围的测速网站,一些大型的主机商都会使用它来测试速度.在某些时候,我们的服务器也要进行测试.当然要是在 ...

最新文章

  1. 学术报告 | 模拟液态和薄结构之间相互作用的多尺度模型
  2. linux c 多态原理,看了所谓的面向对象中靠继承多态实现的所谓重用 哥笑了
  3. IM 融云 之 初始化及登录
  4. JavaWeb第一讲 Servlet的工作原理及生命周期
  5. Oracle笔记(十四) 用户管理
  6. Netty是如何解决粘包和拆包问题的
  7. 使用Struts2和jQuery EasyUI实现简单CRUD系统(五)——jsp,json,EasyUI的结合
  8. 【完美解决】arcgis engine 10.0 for cross platform C++ 在visual studio2010上编译的AE程序 的License无法初始化错误。...
  9. @Html.DisplayFor 和 @mode.Display
  10. linux下curl安装报错symbol lookup error
  11. 轮询、长轮询、长连接、websocket
  12. 使用FME实现电子地图应用之地址解析
  13. 同义替换:哈工大同义词词林扩展版
  14. java 右下角_java实现桌面右下角弹窗效果
  15. 为什么编c语言总有一个错误,为什么程序最后总会显示有1个错误
  16. Service(一、本地服务)
  17. Ivor Horton's Beginning Visual C++ 2008
  18. java中ajax是什么意思,java中使用Ajax技术
  19. python每日学4:vscode的安装与基础使用
  20. windows安装RabbitMQ以及Erlang

热门文章

  1. databasemetadata获取表注释_宏基因组测序中短序列的注释
  2. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台
  3. mysql 显示前三项_详解MySQL三项实用开发知识
  4. python批量查询数据库_Python + MySQL 批量查询百度收录
  5. kafka是存储到本地磁盘么_【漫画】Kafka是如何实现高性能的?
  6. 利用WINDOWS活动目录提供LDAP的方案
  7. php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
  8. HDU - 1560 DNA sequence
  9. Android WebView开发问题及优化汇总
  10. 电量模块MODBUS RTU寄存器解读