部署django+nginx实现ws/wss的websocket生产环境通信

该博客介绍了如何配置nginx服务器,以便实现django应用与ws/wss的websocket通信。主要内容包括设置nginx的ssl证书、代理django后端及配置wss代理,确保支持websocket升级头。
   本文阐述如何使用nginx部署基于django应用的websocket通信。之后会写django基于channels实现websocket的通信文章。
   简单介绍下:  websocket的主要协议ws/wss,类似于http/https的关系,如果使用了https那就必须使用wss协议。
    首先django应用启动ws服务,
    启动runworker      python manage.py runworker   具体实现处理的进程 ,可以理解为干活的   
    启动daphne          daphne -b 0.0.0.0 -p 8888 {应用名}.asgi:channel_layer    端口监听进程,理解为看门的。
    如果没报错,系统就启动了8888端口用来处理websocket请求

    nginx配置, 这里将https和wss请求放一个端口,使用后缀区分,这里展示一个https/wss的配置  
        

点击(此处)折叠或打开

  1. server {
  2.         listen 8010 ssl;
  3.         server_name api.test.com;
  4.         root /usr/share/nginx/html;
  5.         
  6.         ssl_certificate "api.test.com.pem";                #加入证书配置
  7.         ssl_certificate_key "api.test.com.key";
  8.         ssl_session_cache shared:SSL:1m;
  9.         ssl_session_timeout 10m;
  10.         ssl_ciphers HIGH:!aNULL:!MD5;
  11.         ssl_prefer_server_ciphers on;
  12.         
  13.         
  14.         location / {                           #django后端代理         
  15.                 include uwsgi_params;
  16.                 uwsgi_pass 127.0.0.1:8000;
  17.                 client_max_body_size 35m;
  18.         }

  19.         location /ws {                        #wss代理配置,主要设置http协议header支持websocket
  20.                 proxy_pass http://127.0.0.1:8888;
  21.                 proxy_http_version 1.1;
  22.                 proxy_set_header Upgrade $http_upgrade;
  23.                 proxy_set_header Connection "upgrade";
  24.         }        
  25.     }






        
        
        
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值