系统环境:windows server 2019
django环境:python 3.9 django 3.2.7
安装IIS
打开服务器管理仪表板,点击添加角色功能
在添加角色向导中选择服务器选择,下一步
选中 Web服务器(IIS),弹出界面,点击添加,一直点击下一步 ,直到出现安装,点击安装,
等待IIS安装完成后关闭
安装CGL
1.找到之前安装的IIS
2. 点开web服务器
3. 点开应用程序开发,选中CGL,随后一直到下一步,直到安装
>
安装成功后,测试CGL,在浏览器打开 127.0.0.1,出现如下界面即可
安装python
下载python
- 浏览器下载,python官网
- cmd下载
下面命令下载到当前目录certutil.exe -urlcache -split -f 复制好的python下载链接
安装python
- 双击下载后的python安装包,选中添加到路径后点击 install now
- 出现如下界面安装成功,点击close
- 验证安装
打开cmd 输入python 出现如下界面则安装成功
安装python 服务程序环境
安装程序环境
在存在包文件地址栏输入cmd,打开cmd
输入安装命令,等待安装完毕pip install -i https://pypi.doubanio.com/simple/ -r plist.txt
安装服务
本来我准备使用uwsgi的,结果发现windows无法使用uwsgi,找了好久发现windows可以用wfastcgi代替
安装wfastcgipip install -i https://pypi.doubanio.com/simple/ wfastcgi
安装好后启动服务
wfastcgi-enable
如下图,启动后会给出Python路径和wfastcgi的路径显示出来,我们需要把这个路径复制出来,保存好,后边用得着。
到这里环境已经配置完毕,下面开始配置django
django 配置
- 将django文件项目上传到服务器后解压到工作目录(IIS 默认工作目录是 C:\inetpub\wwwroot)
- 在项目根目录里新建一个web.config配置文件,放入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <modules> <remove name="WebDAVModule"/> </modules> <handlers> <remove name="WebDAV"/> <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="*" resourceType="Unspecified" requireAccess="Script"/> </handlers> </system.webServer> <appSettings> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/> <add key="PYTHONPATH" value="*"/> <add key="DJANGO_SETTINGS_MODULE" value="*"/> </appSettings> </configuration>
注:scriptProcessor 后的参数是我们启动wfastcgi复制下的地址.
注:PYTHONPATH 的 value是我们项目的地址 如 C:\www\server
注:DJANGO_SETTINGS_MODULE 的 value 是我们项目的中的sttings所在,如server.settings
ISS部署django
- 在服务器管理器仪表盘中找到工具→IIS管理器,打开
- 停止,删除IIS默认网站服务
![]()
- 添加已经解压的django服务
选中网站→添加网站→填写信息
流程如下图,网站名称随意填写,物理路径一定要选正确
按照上面填写正确后点击确定
4. 修改应用程序池熟悉点击应用程序池→选中服务→高级设置
找到进程模型→标识后双击后面的ApplicationPoolIdentity 将其改为LocalSystem后点确定
- 重启服务,浏览网页,看django是否正常运行
全文到这里就结束了,实话说这个IIS代理django的帖子是真心多,可是没有一个是全的,心累,踩了不少坑,一天折腾下来就做了一件事儿.喜欢,有用点个收藏.如果对你没有用请留言遇到的问题,
原创不易,转载请注明出处.
注:我的django关闭了debug,切没有跟路径的url配置,所以报错.到这一步了,django IIS部署已经完成了,其实该有一个IIS代理的静态设置,可是那玩意儿比nginx麻烦多了就不做了.静态文件我都走nginx代理了
修改一下吧
忽然发现静态文件走这个还是挺香,只需要做下面两步就好
1.添加虚拟路径
2. 在静态文件夹下创建文件 web.config
文件中写如下代码<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <clear/> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> </handlers> </system.webServer> </configuration>
做完以上重启服务器就好了
我发现有小伙伴说按我的教程做了以后会有500.19报错,如下
HTTP 错误 500.19 - Internal Server Error
如果出现这种情况,用管理员权限在cmd中运行下面端口就可以了
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
不要再powershell中运行哦,会报错