部署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 部署配置的更多相关文章

  1. linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))

    linux后台server开发环境部署配置 引言 背景 随着互联网业务的不断增多.开发环境变得越来越复杂,为了便于统一server端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3( ...

  2. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  3. Linux下Apache服务的部署和配置

    目录 Apache服务的安装 yum源安装: 目录文件 源码包安装: 目录文件: Apache中添加对php的支持 Apache中添加php对mysql数据库的支持 Apache服务的高级配置 1:配 ...

  4. CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程

    Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...

  5. Linux下apache+phppgadmin+postgresql安装配置

    Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...

  6. Ubuntu1404+Django1.9+Apache2.4部署配置2配置文件设置

    转载注明出处,个人博客:http://www.cnblogs.com/wdfwolf3/ Django首要的部署平台是WSGI,它是Python Web服务器和应用的标准.使用Apache和mod_w ...

  7. Apache + Tomcat集群配置详解 (1)

    一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...

  8. (转)Apache+Tomcat集群配置

    本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是ht ...

  9. windows下apache + mod_wsgi + python部署flask接口服务

    windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...

随机推荐

  1. UUID字符串使用

    UUID字符串使用 1.可以生成唯一的字符串标示,在发送请求中可能会用到 function uuid(num) { var s = []; var hexDigits = "01234567 ...

  2. APP自动化 -- TouchAction(触屏)

  3. Java基础(一)基础常识

    Java开发基础流程图: 也可参考这篇博客: https://www.cnblogs.com/xdp-gacl/p/3624567.html 常用的Windows的DOS命令 : dir : 列出当前 ...

  4. laravel 资源控制器方法列表

    以 PostController 控制器的每个方法都有对应的请求方式.路由命名.URL.方法名和业务逻辑约定. HTTP请求方式 URL 控制器方法 路由命名 业务逻辑描述 GET post inde ...

  5. 02_Linux实操篇

    第五章 VI和VIM编辑器 5.1. VI和VIM基本介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器.由于对Unix及Linux系统的任何版本,Vi ...

  6. PHP natsort() 函数

    ------------恢复内容开始------------ 实例 对数组进行排序: <?php$temp_files = array("temp15.txt"," ...

  7. PHP fstat() 函数

    定义和用法 fstat() 函数返回关于一个打开的文件的信息. 该函数将返回一个包含下列元素的数组: [0] 或 [dev] - 设备编号 [1] 或 [ino] - inode 编号 [2] 或 [ ...

  8. CF 题目选做

    写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...

  9. ERROR 1054 (42S22): Unknown column 'password' in 'field list'

    解决: update MySQL.user set authentication_string=password('123456') where user='root'; FLUSH PRIVILEG ...

  10. ABP使用Nginx代理导致租户ID(Abp.TenantId)丢失

    描述:ABP使用Nginx代理导致租户ID(Abp.TenantId)丢失,自定义header无效无法传递,导致租户选择认证失败.原因是因为 Nginx 过滤是“.”这符号. 解决: 1,先从代码人手 ...