用wfastcgi在IIS下部署Django&Flask
Django跟Flask在Linux底下都可以很方便地以FastCGI模式部署,貌似IIS下面不很好配置,而且IIS也缺少一个像PHPmanager一样的全自动配置工具,在公司服务器上部署起来颇费周折,部署后总结起来过程倒也不复杂,主要是网上并没有给出一个完整的方案,这里记录一下方便大家使用
先来Django吧,在自己机器上简单开一个测试用网站,这里我用“C:\myWebSite\djangoWeb”做测试

添加个Hello world首页,测试下工作正常就行

用pip装上wfastcgi模块

重要的一步来了,去python下site-package目录

把“wfastcgi.py”这个文件复制到网站根目录

具体原因我后面会说明,现在去IIS里添加网站

这里一定要进入网站控制台内的“处理程序映射”,不要在IIS控制台直接进入,不然创建的FastCGI会对所有网站生效

右面点击“添加模块映射”,具体内容如下

可执行文件一栏输入“python程序”和“wfastcgi.py”的位置,名称随意填写,注意别忘了中间的“|”符号
填完后点开请求限制,把“仅当请求映射至以下内容时才调用处理程序勾掉”

确认添加后会弹出创建FastCGI应用程序对话框,点击确认创建

这样在处理程序映射里就能看到刚添加的FastCGI映射了

返回IIS控制台,进入“FastCGI设置”,可以看到刚刚添加的映射

双击打开,添加Django执行时候的环境变量

这里环境变量一共有三个:
WSGI_HANDLER 为 django.core.handlers.wsgi.WSGIHandler()
PYTHONPATH 为 网站根目录
DJANGO_SETTINGS_MODULE 为 django settings文件位置

添加完成后重启IIS或去应用程序池回收一下就好了

测试一下工作正常

至此Django已经部署已经完成
如果遇到出错的情况请尝试在settings中对“MIDDLEWARE_CLASSES”和“INSTALLED_APPS”内容逐个进行测试,个别会存在兼容问题
然后部署Flask吧,同样先创建一个网站,将“wfastcgi.py”复制进来

Flask的初始化代码很短,测试一下网站工作正常就行


同样创建网站并添加映射,这里不再赘述
注意添加映射时候“wfastcgi.py”的文件路径

添加完成后确认一下

返回IIS控制台,进入“FastCGI设置”,可以看到这里出现了两个“FastCGI映射”,可以推测IIS对同一个执行程序的不同参数会创建不同的映射
我测试了一下,如果只是调用“site-package”目录下的同一个“wfastcgi.py”文件,将无法对不同网站创建不同的FastCGI执行环境,这也就是为什么要将“wfastcgi.py”文件复制到网站目录的原因

同样打开添加环境变量

Flask部署时只需要两个环境变量:
WSGI_HANDLER 对应Flask实例的位置,这里就是flaskWeb文件内的app
PYTHONPATH 为网站根目录

配置完成后同样重启IIS或者回收对应的进程即可

测试成功,至此Flask也部署完毕
接下来说一下静态文件的处理方式,同样不需要太多设置,以Flask项目下的“static”文件夹为例
在IIS内找到这个文件夹的页面,打开处理程序映射

可以看到这里的列表跟网站是一致的

将为网站创建的FastCGI映射删除掉,static文件夹就可以直接访问了,右侧的“恢复为父项”可以恢复对此目录的修改

为了测试我开启了这个目录的目录浏览,放了一个jQuery进去

我的IE貌似有点问题,换用Chrome,jQuery文件也可以直接浏览

到这里静态文件的问题也解决了,如果通过虚拟目录访问其他位置同样操作即可
用wfastcgi在IIS下部署Django&Flask的更多相关文章
- 使用wfastcgi在IIS上部署Python Flask应用
本文介绍了如何在Windows上部署Python Flask应用,相关环境如下: 操作系统:windows 7 Python:3.4 WFastCGI: 2.2 应用所用到的包版本如下: Flask= ...
- Windows的 IIS 部署django项目
Windows的 IIS 部署django项目 1.安装Windows的IIS 功能(win10为例): (1)进入控制面板 :选择大图标 进入程序和功能 (2)启用或者关闭Windows功能 ...
- 在IIS下部署Thinkphp项目,验证码不能显示的解决办法
由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示 这是生成验证码的方法: // 制作专门 ...
- 在IIS下部署SSL证书实现HTTPS
在IIS下部署SSL证书实现HTTPS HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全” ...
- Linux 下部署Django项目
Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...
- Web Server 在iis下部署php网站在iis下
Web Server 在iis下部署php网站在iis下 一.参考地址: windows8 http://www.cnblogs.com/haocool/archive/2012/10/14/win ...
- Web Server 在iis下部署asp网站在iis下
Web Server 在iis下部署asp网站在iis下 一.参考地址: win7 http://jingyan.baidu.com/article/636f38bb1bbcadd6b846108b. ...
- 深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图
原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Co ...
- centos 下部署django nginx+uwsgi
为了建立一个工作站,也是麻烦了.... 感谢该博主: https://www.cnblogs.com/levelksk/p/7921066.html 1.安装centos 后首先安装python,下载 ...
随机推荐
- css学习笔记三
总结一下水平居中和垂直居中的方法,欢迎交流指正,共同进步! 1.水平居中 1.1):行内元素水平居中,在其父类设置text-align:center; 1.2): 块级元素水平居中有三种 第一种:定宽 ...
- C++ 清空消息队列
在button等被禁用后,可能须要它在禁用期间不去响应不论什么消息. 能够使用以下的语句片段: MSG msg; //消耗掉消息队列中的全部消息 while(::PeekMessage(&ms ...
- 开源 免费 java CMS - FreeCMS1.9 简历管理
项目地址:http://code.google.com/p/freecms/ 简历管理 管理当前管理网站的简历数据. 1. 回复简历 选择须要回复的简历.然后点击"回复". 注意: ...
- validate 表单验证
转自博客园:http://www.cnblogs.com/easyinsc/archive/2009/02/27/1407826.html (1)required:true ...
- Object-c的一些基本概念
自学了一个多月的IOS,对Object-C也有了初步的认识,也有很多观点不知道是否正确,所以整理了一下,和小伙伴们分享分享 1.OC中使用的消息机制代替调用方法 区别:使用消息结构的语言,其运行时缩引 ...
- Asp.Net请求处理机制中IsApiRuntime解析
今天看了web请求的生命周期,看完了还有些不懂,就是用反编译工具,查看封装内库的内部实现. 从计算机内部查到web.dll,使用反编译工具打开 打开后 public int ProcessReques ...
- 使用Integer类实现二叉树排序
class BinaryTree { class Node { private Comparable data; private Node left; ...
- codeforces 600E. Lomsat gelral 启发式合并
题目链接 给一颗树, 每个节点有初始的颜色值. 1为根节点.定义一个节点的值为, 它的子树中出现最多的颜色的值, 如果有多种颜色出现的次数相同, 那么值为所有颜色的值的和. 每一个叶子节点是一个map ...
- Auto login to your computer
in run dialog, type in following words and enter Rundll32 netplwiz.dll,UsersRunDll On user account d ...
- linux之sed
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...