apache+djnago+websocket 部署配置
部署Apache服务器
1、apache服务的安装这里不做赘述,因为网上一大堆。
链接:https://blog.csdn.net/qq_24394093/article/details/90550134
安装Python环境
链接:https://blog.csdn.net/L_15156024189/article/details/84831045
为Apache配置Python环境
1、打开apache安装目录下apache/conf/http.conf配置文件
我们需要添加的配置项目如下(本文以windows为例子,如果是linux环境,更换路径即可):
Listen 8000 # 配置程序端口
LoadFile "c:/users/29582/appdata/local/programs/python/python35/python35.dll" # 配置python库加载
LoadModule wsgi_module "c:/users/29582/appdata/local/programs/python/python35/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd" # 配置python环境及静态可执行pyd文件
WSGIPythonHome "c:/users/29582/appdata/local/programs/python/python35" # 配置python.exe路径
WSGIScriptAlias / C:/Users//Desktop/IVSWebServer/WebADM/WebADM/wsgi.py # 配置启动文件
WSGIPythonPath C:/Users//Desktop/IVSWebServer/WebADM #配置项目路径 <Directory C:/Users//Desktop/IVSWebServer/WebADM/WebADM> # 授权
<Files wsgi.py>
Require all granted
</Files>
</Directory>
至此,如果你仅仅是使用python来部署你的django程序的话,就已经可以启动程序,重启apache,环境即部署成功,不需要关注下一步。
websocket处理
如果你的代码中使用到了websocket,那上述步骤无法让你的程序成功运行
你的程序可能报以下错误:liveVideo.vue?cd97:480 WebSocket connection to 'ws://192.168.222.146:8000/analysis/longconnect/' failed: Error during WebSocket handshake: Unexpected response code: 400
那就表示你的websocket在apache无法正常运行。
1、首先我们先了解下程序原本的运行方式:
如果开发环境是在本地,采用python manage.py runserver 127.0.0.1:8000来运行程序的话,前端发送的websocket请求可以直接发送到127.0.0.1:8000这台服务器程序上。
但是如果你使用apache服务器,apache会过滤掉websocket请求,所以才会报错。
apache支持代理,可通过代理将所有的websocket请求转发到另外一台专门处理websocket的服务器上处理
原先请求流程图如下:
异常情况流程同意图:
解决方案流程图:
图中的django程序有两个,虽然名字相同,程序相同,但是跑的是两个服务(一个是apache启动的,一个是命令行启动的)。
根据上述流程图我们可以知道apache无法将ws直接转发给dajngo程序,可以这么理解如果apache代码的django程序是127.0.0.1:8000端口的服务,那么websocket无法通过apache转发到8000端口,那是不是我们就没有解决方案了呢??
答案是肯定有解决方案的,通过查询apache官方的文档:http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#page-header
我们看到,apache是支持代理websocket
具体配置方式如下:
1、打开apache安装目录下apache/conf/http.conf配置文件使能mod_proxy.so、mod_proxy_wstunnel.so(将#号去掉即为使能),用来处理ws和wss服务
2、打开apache安装目录下apache/conf/http.conf配置文件在最下方配置
如果此解决方案对您有帮助,记得给我点赞哈,如有疑问欢迎联系qq:295823911一起探讨。
apache+djnago+websocket 部署配置的更多相关文章
- linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))
linux后台server开发环境部署配置 引言 背景 随着互联网业务的不断增多.开发环境变得越来越复杂,为了便于统一server端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3( ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- Linux下Apache服务的部署和配置
目录 Apache服务的安装 yum源安装: 目录文件 源码包安装: 目录文件: Apache中添加对php的支持 Apache中添加php对mysql数据库的支持 Apache服务的高级配置 1:配 ...
- CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程
Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...
- Linux下apache+phppgadmin+postgresql安装配置
Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...
- Ubuntu1404+Django1.9+Apache2.4部署配置2配置文件设置
转载注明出处,个人博客:http://www.cnblogs.com/wdfwolf3/ Django首要的部署平台是WSGI,它是Python Web服务器和应用的标准.使用Apache和mod_w ...
- Apache + Tomcat集群配置详解 (1)
一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...
- (转)Apache+Tomcat集群配置
本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是ht ...
- windows下apache + mod_wsgi + python部署flask接口服务
windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...
随机推荐
- UUID字符串使用
UUID字符串使用 1.可以生成唯一的字符串标示,在发送请求中可能会用到 function uuid(num) { var s = []; var hexDigits = "01234567 ...
- APP自动化 -- TouchAction(触屏)
- Java基础(一)基础常识
Java开发基础流程图: 也可参考这篇博客: https://www.cnblogs.com/xdp-gacl/p/3624567.html 常用的Windows的DOS命令 : dir : 列出当前 ...
- laravel 资源控制器方法列表
以 PostController 控制器的每个方法都有对应的请求方式.路由命名.URL.方法名和业务逻辑约定. HTTP请求方式 URL 控制器方法 路由命名 业务逻辑描述 GET post inde ...
- 02_Linux实操篇
第五章 VI和VIM编辑器 5.1. VI和VIM基本介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器.由于对Unix及Linux系统的任何版本,Vi ...
- PHP natsort() 函数
------------恢复内容开始------------ 实例 对数组进行排序: <?php$temp_files = array("temp15.txt"," ...
- PHP fstat() 函数
定义和用法 fstat() 函数返回关于一个打开的文件的信息. 该函数将返回一个包含下列元素的数组: [0] 或 [dev] - 设备编号 [1] 或 [ino] - inode 编号 [2] 或 [ ...
- CF 题目选做
写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...
- ERROR 1054 (42S22): Unknown column 'password' in 'field list'
解决: update MySQL.user set authentication_string=password('123456') where user='root'; FLUSH PRIVILEG ...
- ABP使用Nginx代理导致租户ID(Abp.TenantId)丢失
描述:ABP使用Nginx代理导致租户ID(Abp.TenantId)丢失,自定义header无效无法传递,导致租户选择认证失败.原因是因为 Nginx 过滤是“.”这符号. 解决: 1,先从代码人手 ...