前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uWSGI简介_uwsgi启动

uWSGI简介_uwsgi启动

作者头像
全栈程序员站长
发布2022-10-01 13:39:49
5860
发布2022-10-01 13:39:49
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

WSGI协议

  • Web Server Gateway Interface
  • Web Server 和 Web Application通信规范
在这里插入图片描述
在这里插入图片描述

uWSGI概述

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

安装

代码语言:javascript
复制
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)

启动

命令行启动
代码语言:javascript
复制
uwsgi --chdir xxx --module xxx.wsgi --http-socket :80 --max-requests 5000 --processes 4
配置文件启动
  • uwsgi-demo.ini
代码语言:javascript
复制
[uwsgi]
chdir  =  /xxx/xxx
http-socket  =  :80
max-requests  =  5000
processes  =  4
module  =  xxx.wsgi
代码语言:javascript
复制
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:
代码语言:javascript
复制
[uwsgi]
socket = /tmp/uwsgi.sock
配置uWSGI使用TCP/IP socket:
代码语言:javascript
复制
[uwsgi]
socket = 127.0.0.1:8000
配置nginx对应的配置
代码语言:javascript
复制
# 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.cn/194882.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月11日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WSGI协议
  • uWSGI概述
  • 安装
  • 基本配置
  • 启动
    • 命令行启动
      • 配置文件启动
      • socket和HTTP
        • http 和 http-socket的使用上有一些区别:
          • 配置uWSGI使用UNIX socket:
            • 配置uWSGI使用TCP/IP socket:
              • 配置nginx对应的配置
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档