用wfastcgi在IIS下部署Django&Flask

Django跟Flask在Linux底下均可以很方便地以FastCGI模式部署,貌似IIS下面不很好配置,并且IIS也缺乏一个像PHPmanager同样的全自动配置工具,在公司服务器上部署起来颇费周折,部署后总结起来过程倒也不复杂,主要是网上并无给出一个完整的方案,这里记录一下方便你们使用python

先来Django吧,在本身机器上简单开一个测试用网站,这里我用“C:\myWebSite\djangoWeb”作测试django

00

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

01

用pip装上wfastcgi模块服务器

10

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

11

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

12

具体缘由我后面会说明,如今去IIS里添加网站测试

21

这里必定要进入网站控制台内的“处理程序映射”,不要在IIS控制台直接进入,否则建立的FastCGI会对全部网站生效网站

20

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

22

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

23

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

24

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

25

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

26

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

27

这里环境变量一共有三个:

WSGI_HANDLER 为 django.core.handlers.wsgi.WSGIHandler()
PYTHONPATH 为 网站根目录
DJANGO_SETTINGS_MODULE 为 django settings文件位置

28

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

31

测试一下工做正常

32

至此Django已经部署已经完成

若是遇到出错的状况请尝试在settings中对“MIDDLEWARE_CLASSES”和“INSTALLED_APPS”内容逐个进行测试,个别会存在兼容问题

而后部署Flask吧,一样先建立一个网站,将“wfastcgi.py”复制进来

41

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

42

43

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

44

添加完成后确认一下

45

返回IIS控制台,进入“FastCGI设置”,能够看到这里出现了两个“FastCGI映射”,能够推测IIS对同一个执行程序的不一样参数会建立不一样的映射

我测试了一下,若是只是调用“site-package”目录下的同一个“wfastcgi.py”文件,将没法对不一样网站建立不一样的FastCGI执行环境,这也就是为何要将“wfastcgi.py”文件复制到网站目录的缘由

46

一样打开添加环境变量

47

Flask部署时只须要两个环境变量:

WSGI_HANDLER 对应Flask实例的位置,这里就是flaskWeb文件内的app
PYTHONPATH 为网站根目录

48

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

49

测试成功,至此Flask也部署完毕

接下来讲一下静态文件的处理方式,一样不须要太多设置,以Flask项目下的“static”文件夹为例

在IIS内找到这个文件夹的页面,打开处理程序映射

51

能够看到这里的列表跟网站是一致的

52

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

53

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

54

个人IE貌似有点问题,换用Chrome,jQuery文件也能够直接浏览

55

到这里静态文件的问题也解决了,若是经过虚拟目录访问其余位置一样操做便可

相关文章
相关标签/搜索