记一波windows配置apache+django+uvicorn+asgi

由于客户的服务器是windows端,所以采用了apache server来部署,同时查了网上很多资料,apache暂时不支持asgi启动,所以就用了uvicorn来启动asgi。
以下是配置的一些重点步骤,前提是django可以正常启动。

Apache部署

1.打开conf/httpd.conf,编辑下列配置,测试apache

ServerRoot "E:httpd-2.4.33-Win64-VC15Apache24"    # 解压后的文件夹
……  
Listen 127.0.0.1:8080    #监听端口号  
……  
ServerName 127.0.0.1:8080      
……  
DocumentRoot "E:httpd-2.4.33-Win64-VC15Apache24htdocs"   #对应apche文件夹下的htdocs文件夹,以下同  
  
<Directory "E:httpd-2.4.33-Win64-VC15Apache24htdocs">  
……  
ScriptAlias /cgi-bin/ ""E:httpd-2.4.33-Win64-VC15Apache24cgi-bin"  
……  
<Directory "E:httpd-2.4.33-Win64-VC15Apache24cgi-bin">  
    AllowOverride None  
    Options None  
    Require all granted  
</Directory>

2.下载安装mod_wsgi:http://www.lfd.uci.edu/~gohlke/pythonlibs/

下载完成之后进入命令行进行安装,然后输入 mod_wsgi-express module-config

LoadFile "d:/python36/python36.dll"
LoadModule wsgi_module "d:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/python36"

3.重新编辑conf/httpd.conf进行编辑

LoadFile "d:/python36/python36.dll"
LoadModule wsgi_module "d:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/python36"

指定项目的wsgi.py配置文件路径,这个py文件是在你的Django项目中
WSGIScriptAlias / d:/picture/picture/wsgi.py

指定项目目录,即你的Django项目路径

WSGIPythonPath  d:/picture
  
<Directory d:/picture/picture>  
<Files wsgi.py>  
    Require all granted  
</Files>  
</Directory>  

进入 bin 目录下启动httpd.exe 文件,编辑,然后通过浏览器访问 127.0.0.1:8080

uvicorn 安装

pip install uvicorn
使用方法:将lib库中的asyncio.py add_reader方法中方法体改为pass
运行命令 uvicorn project_name.asgi:application

原文地址:https://www.cnblogs.com/jimmyhe/p/11884692.html