django + dwebsocket + apache
1 前言
最近有个项目,有个需求:前端和小程序(exe)要进行双工通信,就选择了django + dwebsocket + apache + pyQT(exe)。
但是apache部署的时候懵逼。应该我太笨,对网上的教程总是迷惑。后面准备写下apache,nginx启动的方法。
2 Apache
2.1 环境
Server version: Apache/2.4.29 (Ubuntu)
2.2 思路
1. Apache无法启动websocket(asgi)
2. 通过ProxyPass映射成统一地址
2.3 流程
1. 配置Apache,假如端口为8001(注,前后台,正常的wsgi)
2. 再启动一个进程:python manage.py runserver 127.0.0.1:8002
3. 安装Apache依赖的mod
sudo a2enmod proxy_wstunnel
sudo a2enmod mod_proxy(我只缺这个)
sudo a2enmod rewrite
测试是否安装成功apachectl -t -D DUMP_MODULES |grep proxy
4. 修改第一步/etc/apache2/sites-available/backecd.conf
<Location /api/v1/ws/>
ProxyPass ws://127.0.0.1:8001/api/v1/ws/
</Location>
5. 重启Apache
ProxyPass
开源永流传