【项目部署-apache】windows系统下apache部署django+channels

devtools/2024/10/20 11:31:29/

一、系统环境

1、原生的python3.8.5(默认安装,不更改安装目录),不要使用Anaconda做虚拟环境。

2、在windows系统下需要,mod_wsgi 模块。

创建虚拟环境:(在当前目录下创建名为 gzgs_alert 的虚拟环境)

python -m venv gzgs_alert

激活gzgs_alert 虚拟环境,安装mod_wsgi:

python">#激活虚拟环境
gzgs_alert\Scripts\activate

1.2、安装mod_wsgi

whl文件下载:

https://download.lfd.uci.edu/pythonlibs/archived/mod_wsgi-4.9.2-cp38-cp38-win_amd64.whl

复制文件到虚拟环境的Scripts目录下:

D:\job\gs\gs_pro\venv\gzgs_alert\Scripts

cmd进入Scripts目录下:执行

#安装模块
pip install mod_wsgi-4.9.2-cp38-cp38-win_amd64-.whl

获取mod_wsgi 安装后,对应的三个信息:复制有用(mod_wsgi-express module-config 也可以查看)

python">(gzgs_alert) D:\job\gs\gs_pro\gzgs_alert>mod_wsgi-express module-config
LoadFile "C:/Program Files/Python38/python38.dll"
LoadModule wsgi_module "d:/job/gs/gs_pro/venv/gzgs_alert/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "d:/job/gs/gs_pro/venv/gzgs_alert"

二、django项目情况

1、项目的路径

D:\job\gs\gs_pro\gzgs_alert

2、使用的虚拟环境的路径

D:\job\gs\gs_pro\venv\gzgs_alert

3、wsgi.py 所在路径

D:\job\gs\gs_pro\gzgs_alert\gzgs_alert\wsgi.py

4、asgi.py所在路径

D:\job\gs\gs_pro\gzgs_alert\gzgs_alert\asgi.py

5、channels设置的路由

python"># 这个变量是存放websocket的路由
socket_urlpatterns = [path('socket/app/<str:channel>/',customers.APPConsumer.as_asgi()),path('socket/gpu/<str:device>/',customers.GPUConsumer.as_asgi()),]

三、apache配置

1、全局配置

python">Define SRVROOT "D:/apps/daily/Apache24" #apache安装的目录
Listen 0.0.0.0:8000 #绑定的IP和端口
ServerName localhost:8000  #服务名,用来标识的,无特殊作用#要反向代理websocket时,释放这两个注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

2、关于django项目的相关配置

python">### django项目的配置 #### 1.安装wsgi模块后,出来的三行字符,直接复制过来
LoadFile "C:/Program Files/Python38/python38.dll" #依赖的原生python解释器
LoadModule wsgi_module "d:/job/gs/gs_pro/venv/gzgs_alert/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd" #加上的mod_wsgi模块
WSGIPythonHome "d:/job/gs/gs_pro/venv/gzgs_alert" #python虚拟环境的位置# 2.设置django项目中的wsgi路径
WSGIScriptAlias / D:\job\gs\gs_pro\gzgs_alert\gzgs_alert\wsgi.py# 3.设置django项目的路径
WSGIPythonPath D:\job\gs\gs_pro\gzgs_alert<Directory D:\job\gs\gs_pro\gzgs_alert\gzgs_alert><Files wsgi.py>Require all granted</Files>
</Directory>#4、设置静态文件路径
Alias /static D:\job\gs\gs_pro\gzgs_alert\static
<Directory D:\job\gs\gs_pro\gzgs_alert\static>  AllowOverride None  Options None  Require all granted  
</Directory> #5、配置反向代理websocket请求: 
#请求: ws://localhost:8000/ws/xx/xx 代理到 ws://localhost:8009/socket/xx/xx
ProxyPass /ws ws://localhost:8009/socket
ProxyPassReverse /ws ws://localhost:8009/socketWSGIApplicationGroup %{GLOBAL}

四、启动项目

1、apache会运行django的wsgi服务

2、对于channels ,需要手动启动服务: pip install daphne

python">#设置配置文件
set DJANGO_SETTINGS_MODULE=gzgs_alert.settings#启动asgi服务
daphne -b 0.0.0.0 -p 8009 gzgs_alert.asgi:application


http://www.ppmy.cn/devtools/10271.html

相关文章

Linux 终止进程命令—sudo kill -9 <进程号>

一、查找占用端口的进程&#xff1a;使用以下命令找到占用了该端口的进程&#xff1a; sudo lsof -i :<端口号> 该命令将显示占用该端口的进程的详细信息。 二、结束占用端口的进程&#xff1a;根据上一步得到的进程信息&#xff0c;使用以下命令结束该进程&#xff1a…

Web端Webrtc,SIP,RTSP/RTMP,硬件端,MCU/SFU融合视频会议系统方案分析

Web端视频融合&#xff0c;会议互通已经是视频会议应用的大趋势&#xff0c;一是目前企业有大量的老视频会议硬件设&#xff0c;二新业务又需要Web端支持视频会议监控直播需求&#xff0c;迫切需要一个融合对接的方案&#xff0c;即能把老的设备用起来&#xff0c;又能对接新的…

设计模式-命令模式(Command)

1. 概念 命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;也被称为动作模式或事务模式。它的核心思想是将一个请求封装成一个对象&#xff0c;从而使你可以用不同的请求对客户进行参数化。对请求排队或记录&#xff0c;以及支持可撤销的操作…

npm内部机制与核心原理

npm 的核心目标&#xff1a; Bring the best of open source to you, your team and your company. npm 最重要的任务是安装和维护开源库。 npm 安装机制与背后思想 npm 的安装机制非常值得探究。Ruby 的 Gem&#xff0c;Python 的 pip 都是全局安装机制&#xff0c;但是 npm …

跟着Datawhale重学数据结构与算法(3)---排序算法

开源链接&#xff1a;【 教程地址 】【电子网站】 【写博客的目的是记录自己学习过程&#xff0c;方便自己复盘&#xff0c;专业课复习】 数组排序&#xff1a; #mermaid-svg-F3iLcKsVv8gcmqqC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16p…

日语对话构建调查研究

日语对话构建调查研究 一&#xff0c;OKWave&#xff08;オウケイウェイヴ&#xff09;网站NLP数据调研 1.OKWave速递 OKWave网址&#xff1a;OKWave 网站印象图 2.调研结论 &#xff08;1&#xff09;可行性&#xff1a;无特殊反爬手段&#xff0c;可直接从OKWave网站抓…

CSS3新增特性(一)

目录 一、CSS3 新增选择器 1. 子级选择器 2. 兄弟选择器 相邻兄弟选择器 其他兄弟选择器 3. 结构伪类选择器 ① E:first-child ② E:last-child ③ nth-child&#xff08;n&#xff09; n为数字&#xff1a; n为关键字&#xff1a; n为公式&#xff1a; ④ E: firs…

授人以渔 选购篇九:扫地机器人(扫拖机器人)选购要点

文章目录 系列文章自动上下水导航技术&#xff1a;立体激光导航视觉导航&#xff0c;多传感器清洁能力&#xff1a;胶条刷、旋转拖布健康卫生&#xff1a;热水洗拖布、热风烘干智能功能品牌其他 系列文章 授人以渔 选购篇一&#xff1a;信用卡选购要点 授人以渔 选购篇二&…