用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

到這裏靜態文件的問題也解決了,若是經過虛擬目錄訪問其餘位置一樣操做便可

相關文章
相關標籤/搜索