一、系统环境
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