編輯人員註釋:本文章由 Windows Azure 網站團隊的項目經理 Daria Grigoriu 和 Windows Azure 網站開發人員體驗合做夥伴共同撰寫。php
Windows Azure 網站 (WAWS) 團隊積極投資開發了一款用於開發Stacks的支持模型,可以使您的 Web 應用程序快速開始運行,併爲您的 Web 應用程序提供增加空間。本博客文章重點介紹了咱們用於開發Stacks版本控制和可擴展性的幾個基本原則,以及這些原則如何應用到您的 Web 應用程序。node
目前咱們支持 .NET、PHP、Node.js 和 Python Stacks。Windows Azure 開發中心(網址爲:http://www.windowsazure.com/en-us/develop)爲以上每種Stacks均提供了良好的知識庫。您建立網站後便可上傳您的內容,只需最少的信息輸入,咱們就能使其投入運行。python
WAWS 開發Stacks版本控制git
咱們支持的某些開發Stacks(如 PHP)被設計爲支持並行版本。對於這些開發Stacks,咱們提供了一系列通過驗證適用於咱們的平臺的當前版本。咱們還創建了一個默認版本,所以除非您出於兼容性緣由更喜歡特定版本,不然無需輸入。github
其餘開發Stacks(如 .NET)被設計爲提供某些版本(如 .NET 4.5)的就地升級。在這種狀況下,咱們努力維護開發Stacks的當前狀態,併爲您提供最新版本的功能和優點。web
對於支持的每一個開發Stacks,隨 WAWS 提供的版本及相應的版本默認設置摘要可今後連接獲取:https://github.com/projectkudu/kudu/wiki/Azure-Web-Sites-Development-Stacks。正則表達式
開發Stacks可擴展性npm
若是您須要自定義,咱們可爲每一個開發Stacks所提供的擴展點提供支持。django
.NET json
.NET Framework 已與 WAWS 平臺深刻集成。
配置
可使用 web.config 文件指定配置。某些開發人員習慣使用的 apphost.config 文件沒法使用 WAWS 直接編輯,但可使用 XML 文檔轉換 (XDT) 聲明進行修改。apphost.config 中的某些設置(如默認文檔),可經過 Azure 門戶在網站的 CONFIGURE 選項卡中進行編輯。
可擴展性
能夠將可進行 Bin 部署的組件(如 MVC 或網頁)添加到您的 Web 應用程序文件夾中。
Node.js
配置
如下是與在 WAWS 上部署的 Node.js 應用程序相關的主要配置文件:
· package.json
這是一個與跨平臺相關的特定於 Node.js 的配置文件。示例用法包括指定 Node.js 模塊依賴項(如 Express.js)以及運行時版本號。
· iisnode.yml
這是由特定的 iisnode 自定義 IIS 模塊使用的配置文件。示例用法包括指定用於啓動 node.exe 的命令、iisnode 將建立的 node.exe 進程數以及日誌記錄配置。
· web.config
這是由 WAWS 平臺使用的 IIS 配置文件。此文件會捕獲所需的處理程序註冊,並容許使用 URL 重寫以進行靜態文件使用性能優化。
可擴展性
與 WAWS 集成的 Node.js 開發Stacks包括 http://nodejs.org/api 中所述的核心功能。https://npmjs.org 中所述的 NPM 模塊生態系統可用於擴展核心開發Stacks功能。package.json 配置文件可用於指定要包括在 Web 應用程序中的模塊。若是使用與 WAWS 平臺集成的基於 GIT 的源代碼版本控制,npm install 會在 GIT push 操做期間運行以提取和安裝依賴項。若是使用其餘開發機制(如 FTP),則能夠在本地開發期間下載和配置模塊,並將整個 Web 應用程序上傳到 WAWS。請記住,NPM 模塊包括跨平臺兼容的 Javascript 模塊和設計用於特定平臺的本機模塊 – 對您的應用程序進行測試始終是個好主意。
運行時版本
能夠選擇 WAWS 平臺中包括的任一 Node.js 版本,或者上傳和配置自定義 Node.js 運行時版本。可經過 Windows Azure 開發人員中心獲取相關說明,網址爲:http://www.windowsazure.com/en-us/develop/nodejs/common-tasks/specifying-a-node-version。
PHP
配置
在 WAWS 上部署的與 PHP 應用程序相關的主配置文件是標準的 PHP .user.ini 文件。此文件可用於設置可更改的 PHP 指令,如用於診斷的 display_errors。
可擴展性
默認狀況下,WAWS 支持一系列核心 PECL 擴展。咱們也歡迎您進行自定義擴展。要啓用自定義擴展,請在 FTP 根目錄下引入 DLL,並在 CONFIGURE 選項卡下添加 PHP_EXTENSIONS 應用程序設置, 其值應設置爲 PHP 擴展的位置 (到應用程序根目錄的相對位置)。
運行時版本和自定義
經過 Azure 門戶訪問網站的 CONFIGURE 選項卡時能夠進行版本選擇。
WAWS 還支持基於 FastCGI 的自定義 PHP 開發Stacks。將開發Stacks上傳到網站的根目錄下。訪問網站的 CONFIGURE 選項卡,並將新的腳本處理器(一般爲 php-cgi.exe)與 *.php 擴展名相關聯。腳本處理器須要使用絕對路徑:例如D:\home\site\wwwroot\php5.5\php-cgi.exe,其中 D:\home\site\wwwroot 表示站點的根目錄。
Python
配置
與在 WAWS 上部署的 Python 應用程序相關的主要配置文件爲 web.config。此文件會捕獲所需的處理程序註冊,並容許使用 URL 重寫以進行靜態文件使用性能優化。是否使用 web.config 文件是可選的,還能夠經過 Azure 門戶中的 CONFIGURE 選項卡指定處理程序映射。Windows Azure 開發人員中心提供了更多信息,網址爲:http://www.windowsazure.com/en-us/develop/python/tutorials/web-sites-configuration。
能夠經過 Azure 門戶中 CONFIGURE 選項卡下方的「應用程序設置」更新某些配置選項:
· WSGI_LOG:用於捕獲應用程序和配置錯誤的日誌文件的絕對路徑
· WSGI_HANDLER:可調用的應用程序對象WSGI協議接受環境時, 還有start_response 函數都會用到它.
此處指定的值必須爲模塊/程序包名稱,後跟要使用的模塊中的屬性 - 例如 mypackage.mymodule.handler(添加括號以指示應調用該屬性)。
· WSGI_RESTART_FILE_REGEX:用於指定文件名的正則表達式
默認狀況下,這指的是全部 *.py 和 *.config 文件:.*((\\.py)|(\\.config))$
可擴展性
您能夠將程序包放在應用程序根目錄下方,並經過 web.config 或應用程序設置配置 PYTHONPATH,以將程序包添加到部署中。WAWS 當前不支持 Virtualenv。
要支持部署任意程序包,請首先建立目錄將程序包存儲在網站的根目錄下方。這相似於在您的 Python lib 文件夾中建立 site-packages 目錄,但它位於您的 Web 應用程序中,並部署到 Windows Azure 網站。將程序包複製到此新目錄,並將此目錄的絕對路徑添加到 web.config(例如 D:\home\site\wwwroot\my-packages)的 PYTHONPATH 中。如今,這些程序包能夠在 Web 應用程序中導入了。
例如,能夠將 Django 包括在應用程序中。首先下載 Django 或將其安裝到現有的 Python 安裝中。接下來,將 Django 程序包(一般是名爲 django 的文件夾,其中包括 __init__.py 文件)複製到應用程序中的某個目錄。默認狀況下,應用程序根目錄會包括在搜索程序包的目錄的列表中。若是但願在子目錄(例如 mypackages\django)中包括它,能夠將父目錄添加到 web.config 中的 PYTHONPATH – 在這種狀況下,位置應該爲 D:\home\site\wwwroot\mypackages。
Windows Azure 開發人員中心提供了更多信息,網址爲:http://www.windowsazure.com/en-us/develop/python/tutorials/web-sites-with-django。
運行時版本和自定義
歡迎使用基於 FastCGI 的自定義 Python 開發Stacks。能夠將自定義的開發Stacks上傳到網站的根目錄下,並將網站處理程序映射配置爲包括基於 FastCGI 的腳本處理器的絕對路徑。
咱們一如既往地期待您的反饋,請經過論壇反饋告訴咱們如何更好地知足您的開發Stacks需求。
本文翻譯自: