uWSGI简介_uwsgi启动

uWSGI简介_uwsgi启动WSGI协议WebServerGatewayInterfaceWebServer和WebApplication通信规范uWSGI概述实现了WSGI协议Web服务器接收客户端请求,通过协议传达给Django应用安装pipinstalluwsgi基本配置chdir:WSGI应用目录module:WSGI应用的模块名字processes:uWSGI进程数(http-)socket:套接字路径、地址max-requests:最大并发请求数vacuum:退

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

WSGI协议

  • Web Server Gateway Interface
  • Web Server 和 Web Application通信规范

在这里插入图片描述

uWSGI概述

  • 实现了WSGI协议
  • Web服务器
  • 接收客户端请求,通过协议传达给Django应用

安装

root@iZ8vbgll9tzu0dgfcvf6s4Z:/home/deployment# pip3 install uwsgi
Collecting uwsgi
  Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/c7/75/45234f7b441c59b1eefd31ba3d1041a7e3c89602af24488e2a22e11e7259/uWSGI-2.0.19.1.tar.gz (803kB)
    100% |████████████████████████████████| 808kB 33.7MB/s 
Building wheels for collected packages: uwsgi
  Running setup.py bdist_wheel for uwsgi ... done
  Stored in directory: /root/.cache/pip/wheels/90/ab/29/c52c91de32f3b779e6edc66cc263e87bdec9025e9870dcc662
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.19.1
root@iZ8vbgll9tzu0dgfcvf6s4Z:/home/deployment#

基本配置

  • chdir:WSGI应用目录
  • module:WSGI应用的模块名字
  • processes:uWSGI进程数
  • (http-)socket:套接字路径、地址
  • max-requests:最大并发请求数
  • vacuum:退出时清理环境配置(Boolean)

启动

命令行启动

uwsgi --chdir xxx --module xxx.wsgi --http-socket :80 --max-requests 5000 --processes 4

配置文件启动

  • uwsgi-demo.ini
[uwsgi]
chdir  =  /xxx/xxx
http-socket  =  :80
max-requests  =  5000
processes  =  4
module  =  xxx.wsgi
uwsgi --ini uwsgi-demo.ini

socket和HTTP

  • socket
    nginx 和 uwsgi 中间走的是 wsgi 协议,二进制。有unix socket和tcp socket两种。
    unix Socket,这个性能效率最高,直接内存交换,但必须应用和 NGX 同在一台服务器上;
    TCP Socket, 二进制包传递.
  • HTTP
    nginx 和 uwsgi 中间走的是 http 协议,文本, 是基于 TCP 上面的一层文本协议。

直接将uwsgi用作服务器(例如Apache和nginx那样)直接暴露在公网那么就使用http;如果有单独的服务器(例如Apache或者nginx),由服务器将请求转发给uwsgi处理,并且使用http协议,那么此时使用http-socket。
而socket配置项又是什么意思呢?首先,按照uwsgi文档给出的解释是:bind to the specified UNIX/TCP socket using default protocol.也就是说指定UNIX/TCP socket作为默认的协议(引)。
UNIX/TCP socket其实是两类socket。UNIX socket是进程间的通信(Inter Process Communication),只能在同一台机器上;TCP/IP sockets允许进程通过网络通信。

http 和 http-socket的使用上有一些区别:

  • http: 自己会产生一个http进程(可以认为与nginx同一层)负责路由http请求给worker, http进程和worker之间使用的是uwsgi协议。
  • http-socket: 不会产生http进程, 一般用于在前端webserver不支持uwsgi而仅支持http时使用, 他产生的worker使用的是http协议。

http 一般是作为独立部署的选项; http-socket 在前端webserver不支持uwsgi时使用,如果前端webserver支持uwsgi, 则直接使用socket即可(tcp or unix)。

配置uWSGI使用UNIX socket:

[uwsgi]
socket = /tmp/uwsgi.sock

配置uWSGI使用TCP/IP socket:

[uwsgi]
socket = 127.0.0.1:8000

配置nginx对应的配置

# uWSGI socket(unix socket)
uwsgi_pass unix:///tmp/uwsgi.sock;
include uwsgi_params;

# TCP sockets
uwsgi_pass 127.0.0.1:3031;
include uwsgi_params;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194882.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 400报错有关[通俗易懂]

    400报错有关[通俗易懂]400报错是数据类型对不上,畸形,以下是经常报400的地方1.时间封装类中没有加时间注解或者使用时分秒是在新增页面使用f标签去吊.0使用<f:>2.外键name值中只加属性没加属性的属性id(注:这个是属性是外键所以需要对象.对象id)3.封装类Date包导成sql了…

    2022年5月20日
    31
  • matplotlib绘图实例:pyplot、pylab模块及作图参数「建议收藏」

    matplotlib绘图实例:pyplot、pylab模块及作图参数「建议收藏」http://blog.csdn.net/pipisorry/article/details/40005163Matplotlib.pyplot绘图实例{使用pyplot模块}matplotlib绘制直线、条形/矩形区域importnumpyasnpimportmatplotlib.pyplotaspltt=np.arange(-1,2,.01)s=…

    2022年6月17日
    37
  • 永恒之蓝病毒win7解决方法_win10永恒之蓝漏洞补丁

    永恒之蓝病毒win7解决方法_win10永恒之蓝漏洞补丁简介:NSA武器库的公开被称为是网络世界“核弹危机”,其中有十款影响Windows个人用户的黑客工具,包括永恒之蓝、永恒王者、永恒浪漫、永恒协作、翡翠纤维、古怪地鼠、爱斯基摩卷、文雅学者、日食之翼和尊重审查。这些工具能够远程攻破全球约70%的Windows系统,无需用户任何操作,只要联网就可以入侵电脑,就像冲击波、震荡波等著名蠕虫一样可以瞬间血洗互联网,木马黑产很可能改造NSA的武器…

    2022年10月16日
    2
  • Camstar 协助工具

    Camstar 协助工具此系统为了解决接口同步、报表、打印、服务器状态监控、服务器异常预警、服务异常自动修复、Design代码查看、CLF编辑后导出、Camstar发布、数据清理、数据还原、日志解析。有意者,请留言

    2025年7月28日
    2
  • Crontab定时任务配置

    Crontab定时任务配置一、开启crontab1.查看crontab是否启动sudolaunchctllist|grepcron2.检查需要的文件ls-al/etc/crontab3.如果crontab文件不存在则创建sudotouch/etc/crontab上述操作完成之后就可以正常使用crontab啦二、crontab服务开启、关闭1.开启su…

    2025年8月24日
    2
  • getchar的使用

    1.从缓冲区读走一个字符,相当于清除缓冲区2.前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误3.getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和…

    2022年4月5日
    101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号