# Wsgi和Asgi 推荐Server

# WSGI和ASGI

# Wsgi同步应用

  • uWSGI:C实现的Python Web服务器;Web 服务器 Apache/Nginx 与 django-uwsgi 进程通信来提供动态的内容,推荐使用
  • gunicorn:纯 Python 实现的高性能 Python 应用容器,无外部依赖,简单容易配置;没有性能问题前推荐使用gunicorn。

# Asgi异步应用

异步容器中所有代码都要是异步的,Django框架自身有兼容,但一些第三方插件不一定支持,需要做一些处理。

  • Daphne: twisted 实现,推荐使用。
  • Hypercorn: 基于 sans-io hyper, h11, h2, wsproto实现
  • Uvicorn: 基于 uvloop and httptools 实现

# Django应用容器选择

Django默认的runserver命令会启动一个WSGI服务器,若想启动ASGI服务器则需要安装

# DJango中的Wsgi和Asigi

DJango在创建项目后,会自动生成一个asgi文件,可以通过其asgi:application​来启动ASGI服务器。

无法使用传统的runserver​命令启动ASGI服务器,这只会启动默认的WSGI服务器,即同步架构的服务器,为此我们需要安装专门的ASGI服务器,一般使用Daphne即可。