用wfastcgi在IIS下部署Django&Flask


Django跟Flask在Linux底下都可以很方便地以FastCGI模式部署,貌似IIS下面不很好配置,而且IIS也缺少一個像PHPmanager一樣的全自動配置工具,在公司服務器上部署起來頗費周折,部署后總結起來過程倒也不復雜,主要是網上並沒有給出一個完整的方案,這里記錄一下方便大家使用

先來Django吧,在自己機器上簡單開一個測試用網站,這里我用“C:\myWebSite\djangoWeb”做測試

00

添加個Hello world首頁,測試下工作正常就行

01

用pip裝上wfastcgi模塊

10

重要的一步來了,去python下site-package目錄

11

把“wfastcgi.py”這個文件復制到網站根目錄

12

具體原因我后面會說明,現在去IIS里添加網站

21

這里一定要進入網站控制台內的“處理程序映射”,不要在IIS控制台直接進入,不然創建的FastCGI會對所有網站生效

20

右面點擊“添加模塊映射”,具體內容如下

22

可執行文件一欄輸入“python程序”和“wfastcgi.py”的位置,名稱隨意填寫,注意別忘了中間的“|”符號
填完后點開請求限制,把“僅當請求映射至以下內容時才調用處理程序勾掉”

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

到這里靜態文件的問題也解決了,如果通過虛擬目錄訪問其他位置同樣操作即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM