Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1635188
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友

分类: Web开发

2020-02-26 14:43:34

   本文阐述如何使用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.     }






        
        
        
        
阅读(2675) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~