• 【项目部署-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:

    1. #激活虚拟环境
    2. 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目录下:执行

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

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

    1. (gzgs_alert) D:\job\gs\gs_pro\gzgs_alert>mod_wsgi-express module-config
    2. LoadFile "C:/Program Files/Python38/python38.dll"
    3. LoadModule wsgi_module "d:/job/gs/gs_pro/venv/gzgs_alert/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
    4. 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设置的路由

    1. # 这个变量是存放websocket的路由
    2. socket_urlpatterns = [
    3. path('socket/app//',customers.APPConsumer.as_asgi()),
    4. path('socket/gpu//',customers.GPUConsumer.as_asgi()),
    5. ]

    三、apache配置

    1、全局配置

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

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

    1. ### django项目的配置 ###
    2. # 1.安装wsgi模块后,出来的三行字符,直接复制过来
    3. LoadFile "C:/Program Files/Python38/python38.dll" #依赖的原生python解释器
    4. 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模块
    5. WSGIPythonHome "d:/job/gs/gs_pro/venv/gzgs_alert" #python虚拟环境的位置
    6. # 2.设置django项目中的wsgi路径
    7. WSGIScriptAlias / D:\job\gs\gs_pro\gzgs_alert\gzgs_alert\wsgi.py
    8. # 3.设置django项目的路径
    9. WSGIPythonPath D:\job\gs\gs_pro\gzgs_alert
    10. Require all granted
    11. #4、设置静态文件路径
    12. Alias /static D:\job\gs\gs_pro\gzgs_alert\static
    13. AllowOverride None
    14. Options None
    15. Require all granted
    16. #5、配置反向代理websocket请求:
    17. #请求: ws://localhost:8000/ws/xx/xx 代理到 ws://localhost:8009/socket/xx/xx
    18. ProxyPass /ws ws://localhost:8009/socket
    19. ProxyPassReverse /ws ws://localhost:8009/socket
    20. WSGIApplicationGroup %{GLOBAL}

    四、启动项目

    1、apache会运行django的wsgi服务

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

    1. #设置配置文件
    2. set DJANGO_SETTINGS_MODULE=gzgs_alert.settings
    3. #启动asgi服务
    4. daphne -b 0.0.0.0 -p 8009 gzgs_alert.asgi:application

  • 相关阅读:
    解析视频编辑SDK的技术服务支持与价格
    uniapp 和 HTML5 区别
    Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项
    linux系统sh脚本后台执行
    manacher算法
    [安卓java毕业设计源码]精品基于Uniapp+SSM实现的记账app[包运行成功]
    九科-模块化-创建目录_如果不存在
    域名反查、权重查询以及ICP备案查询——ipInfoSearch
    基于密度的聚类DBSCAN(机器学习)
    asp.net购物网站源码-系统销售毕业设计
  • 原文地址:https://blog.csdn.net/weixin_46371752/article/details/138062254