Nginx配置Websocket

发布时间 2024-01-04 10:09:47作者: 瘋耔

1 前言
软工大作业的服务器实现了一个自动聊天机器人的功能,经过测试在Django自带服务器中没有问题,但是在部署到Nginx后,出现了Nginx不能成功转发的问题。
经过调研后,发现是之前一直使用位于8080端口的uwsgi服务器接收从nginx监听的80端口发送来的请求,而对于websocket请求,应当使用asgi服务器来处理,因此使用uwsgi无法正常的处理websocket请求,从而出现错误。

对于wsgi和asgi,可以简单的介绍:
WSGI,全称Web服务器网关接口(Python Web Server Gateway Interface, WSGI),是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。
WSGI是基于http协议模式开发的,不支持websocket。
ASGI,是异步网关协议接口,解决了python中的WSGI不支持当前的web开发中的一些新的协议标准,同时ASGI支持原有模式和websocket的扩展,即ASGI是WSGI的扩展。