一 基本介绍

对像我这样不是专业做网络的人来说,uuwsgi是一个陌生的东西。它是谁?它可以做什么?谁会用到它?
其实,在不知道一个东西是什么的情况下,能够快速的了解并使用它,是一门很有艺术性的事情。最重要的是,它对你十分有价值。估计在你没有花上几分钟了解它之前,你不会知道它是否对你有价值的。所以说,既然你能搜到我这篇文章,那就花几分钟看一下吧,估计看完第一节,你就知道是否有看第二节的必要了。
谁应该了解并使用它呢?
做web开发的技术人员,想做自己网站的业务人员,还有那些想学习web开发的学生,都应该或多或少的了解并学习一下uwsgi的。因为他在网站建设中应用的范围是十分广泛的。
它是什么?下面一段话估计能很好的解释你的疑惑。
uWSGI旨在为部署分布式集群的网络应用开发一套完整的解决方案。主要面向web及其标准服务。由于其可扩展性,能够被无限制的扩展用来支持更多平台和语言。uWSGI是一个web服务器,实现了WSGI协议,uwsgi协议,http协议等。
uWSGI的主要特点是:
  超快的性能
  低内存占用
  多app管理
  详尽的日志功能(可以用来分析app的性能和瓶颈)
  高度可定制(内存大小限制,服务一定次数后重启等)
  uWSGI服务器自己实现了基于uwsgi协议的server部分,我们只需要在uwsgi的配置文件中指定application的地址,uWSGI就能直接和应用框架中的WSGI application通信。
假如你上面的这些看不懂,不要紧的,我再用通俗的语言给你解释一下:uWSGI就是帮你管理创建的网站的一个工具。假如建立的web是你的孩子,它就是你孩子的贴身保姆,你孩子的吃喝拉撒它都能有办法跟踪并维护。这个你该了解了吧。
  假如你还是一头雾水。一个说明我的语言表达太差,需要锻炼。另外一个说明它对你没有价值,接下来的第二节就不要浪费时间了,第二节不是为你准备的了。

二 使用场景

  uWSGI项目旨在为构建托管服务开发全栈。
使用通用的API和通用的配置风格来实现应用服务器 (对于各种编程语言和协议),代理,进程管理器和监控器。
由于其可插拔架构,可以对其扩展以支持更多的平台和语言。
目前,你可以用C, C++和Objective-C来编写插件。
通用性、高性能、低资源使用和可靠性是该项目的强项(也是唯一遵循的法则)。
概念区分:
  uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
  要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。
  WSGI是一种通信协议。
  uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
  而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。所以不要搞混了。

三 安装方法

下面介绍几个常用的安装方法:
1 源码安装:
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd 
make
sudo make install

2 使用python pip安装

假如基础不好的同学,建议使用这种,简单明了:
pip install uwsgi

四 测试指南

  定一个一个python文件,比如:test.py
内容为:

/usr/bin/python3
def application(env, start_response):
start_response(‘200 OK’, [(‘Content-Type’,‘text/html’)])
return [b"This is XuSheng uWSGI test "]

  假如你用的是python2,return后面的东西估计要改一下,具体怎么改就交给你了,不难的。
接下来,启动uWSGI来运行一个HTTP服务 向你的SWGI 应用发起请求。
使用的命令如下:
  

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

接下来,你就可以通过log信息来看是否成功运行了:

本人正常的log信息:
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 1418
your memory page size is 4096 bytes
detected max file descriptor number: 7168
lock engine: OSX spinlocks
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :9090 fd 4
spawned uWSGI http 1 (pid: 30744)
uwsgi socket 0 bound to TCP address 127.0.0.1:54389 (port auto-assigned) fd 3
Python version: 3.7.1 (default, Dec 14 2018, 13:28:58) [Clang 4.0.1 (tags/RELEASE_401/final)]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x7ff902600e30
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72888 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint=’’) ready in 0 seconds on interpreter 0x7ff902600e30 pid: 30743 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 30743, cores: 1)

然后在浏览器中输入:
http://127.0.0.1:9090
查看是否正确
如下所示:


  至此,基本介绍结束,假如你是一个不折不扣的精力旺盛的,无所事事的,敏而好学的,三好学生。那就可以看下面的索引,东西多的让你学不完。

深入文档:

https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/

https://github.com/ictar/uwsgi-docs/blob/master/index.rst

https://www.jianshu.com/p/679dee0a4193

uwsgi基本介绍安装和测试--使用Django建立你的第一个网站的更多相关文章

  1. Django+Nginx概念安装和使用–使用Django建立你的第一个网站

    一 前记 最近在使用Django倒腾属于自己的网站,由于以前没有接触过多少这类信息,所以,很多东西都是从零开始学习的.在参考网上的资料时候,发现很多对这方面记录的,很多人都写的不是很清楚,也许我这个新 ...

  2. Django跳转到不同的页面的方法和实例–使用Django建立你的第一个网站

    1 前记 这次记录的这些东西,主要是自己在搭建个人网站的时候遇到的一些问题记录,不算严格意义上的教程和使用说明.按照目前自己的web水平,去写这方面的教程无疑是误人子弟.因为自己虽然做程序员很多年,但 ...

  3. 快速入门和使用HTML–使用Django建立你的第一个网站

    一 前记 你每天浏览的网页,通过网络看的新闻,看着淘宝京东的绚丽多彩的界面.是否想过这个问题,它是怎么实现的呢?有没有搜过相关的知识呢?假如没有,假如你是一位对事物好奇的主或者是做计算机相关东西的人. ...

  4. Centos 7 Puppet之foreman介绍安装测试

    一.简介 1.前言(引用一下网上的资料) 随着企业的 Linux 系统数量越来越多,管理问题便成为一个相对麻烦并需要急 迫解决的问题,这里有 2 个 Key Message:1)统一管控体系非常重要, ...

  5. pdf2htmlEx安装及测试

    pdf2htmEx转换效果优秀,可以将pdf转换为html文件,转换速度很快 有两种输出形式, 1.一个pdf对应一个html文件,转换出来的html文件较大 2.一个pdf对应多个html页面,且可 ...

  6. OpenCV2+入门系列(一):OpenCV2.4.9的安装与测试

    这里假设看到这篇文章的人都已经对OpenCV以及机器视觉等最基础的概念有了一定的认识,因此本文不会对OpenCV做任何的介绍,而是直接介绍OpenCV2.4.9的安装与测试.此外本文只是简单的介绍如何 ...

  7. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  8. Docker的安装和测试

    1,Docker安装 Docker是啥,以及其与虚拟机的对比,就不介绍了,网上有很多资源可以学习和了解. 本篇文章重点介绍Docker的安装和测试使用. Docker的安装,分为离线安装和在线安装两种 ...

  9. hadoop2-HBase的安装和测试

    在安装和测试HBase之前,我们有必要先了解一下HBase是什么 我们可以通过下面的资料对其有一定的了解: HBase 官方文档中文版 HBase 深入浅出 我想把我知道的分享给大家,方便大家交流. ...

随机推荐

  1. 100天搞定机器学习|Day15 朴素贝叶斯

    Day15,开始学习朴素贝叶斯,先了解一下贝爷,以示敬意. 托马斯·贝叶斯 (Thomas Bayes),英国神学家.数学家.数理统计学家和哲学家,1702年出生于英国伦敦,做过神甫:1742年成为英 ...

  2. SpringMVC项目案例之---数据的获取与显示

    数据的获取与显示 (一)功能 1.对用户输入的数据进行获取 2.将获取的数据显示到页面 3.使用了SpringMVC技术的注解方式 4.使用了过滤器,处理中文乱码问题 5.在web.xml中设置了访问 ...

  3. Hadoop 系列(八)—— 基于 ZooKeeper 搭建 Hadoop 高可用集群

    一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求 ...

  4. Docker最简单入门之(二)——简单使用Docker

    0.前言 本章主要写一些怎么使用Docker,拉取镜像和创建容器等之类的Docker的常用基本操作.在开始写之前,大家需要明白一下几个名词的含义 1.镜像:镜像是指一个类似于安装包的东西,尝试安装过电 ...

  5. js 数组对象深拷贝

    js 数组对象深拷贝 结论:对象的拷贝不能采用直接赋值的方式. 背景 踩过的坑如下: formData本来是父组件传过来的,但是我不想直接用,于是我直接赋值给一个formDataCopy的对象. 但是 ...

  6. 基于jmeter+perfmon的稳定性测试记录

    1. 引子 最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来. 说起来性能测试算是软件测试行业内,有些特殊的部分.这部分的测试活动,与传统的测试任务差别是比较大的, ...

  7. Spring 2017 Assignments2

    一.作业要求 原版:http://cs231n.github.io/assignments2017/assignment2/ 翻译:http://www.mooc.ai/course/268/lear ...

  8. Java-Servlet请求方式doXXX、service 具体分析

    说起Servlet的接收处理请求的方式,想必各位都并不陌生,如doGet.doPost.service... 那么他们的背后是如何执行?服务器怎么选择知道的?我们就此来探讨一下 本节案例的代码奉上: ...

  9. Oralce PL/SQL 调用C

    1.要把C写成扩展的形式 ex.c文件 int __declspec(dllexport) sum(int a,int b) { return a+b; } 2.把C代码编译成动态库(*.dll 或 ...

  10. 完美解决迅雷极速版强制升级到迅雷X

    虽然迅雷已死,但是还是软件还是有点点用的.废话不好多说,直接上解决办法: 1. 找到桌面的迅雷图标,右键选择打开文件位置; 2. 根据路径找到: 相对路径:Thunder Network\Thunde ...