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

一、系统环境

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

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

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

python -m venv gzgs_alert

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

#激活虚拟环境
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 也可以查看)

(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设置的路由

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

]

三、apache配置

1、全局配置

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项目的相关配置

### 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/socket


WSGIApplicationGroup %{GLOBAL}

四、启动项目

1、apache会运行django的wsgi服务

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

#设置配置文件
set DJANGO_SETTINGS_MODULE=gzgs_alert.settings

#启动asgi服务
daphne -b 0.0.0.0 -p 8009 gzgs_alert.asgi:application

上一篇:MATLAB线性函数拟合并预测


下一篇:17.Nacos与Eureka区别