python - 如何使用不同的 Python 运行时将 Django/WSGI 部署为 azure web 应用程序?

标签 python django azure iis azure-web-app-service

我正在尝试在 Microsoft Azure Web 应用程序实例(它是托管 Windows VM)上部署 Django Web 应用程序。文档在这里,

https://learn.microsoft.com/en-us/azure/app-service-web/web-sites-python-configure

描述如何使用 Python 2.7 或 Python 3.4 部署应用程序。我正在尝试部署一个使用 Python 3.6 构建的应用程序(不是 Azure 开箱即用支持的运行时)。我使用 Azure 的“站点扩展”功能安装了运行时。这是扩展程序的链接(我认为),

https://www.siteextensions.net/packages/python361x86/

我主要使用 Apache 在 Linux 系统上工作。我在这里面临的困难是如何在 Azure 实例上配置 IIS 以使用 Python 3.6 运行我的 django web 应用程序(它使用 runserver 命令在我的开发系统上运行)。遗憾的是,我无法请求在 azure 上使用 Linux VM(业务限制)。

我遇到的一个问题是如何在项目中编写web.config 文件。引用Python3.4使用了一个virtualenv,奇怪的是,它在带有站点扩展的Python上被明确禁用(引用:https://github.com/Azure/azure-python-siteextensions/issues/6)。

我遇到的另一个问题是我想使用 waitress WSGI 而不是 FastCGI(引用: http://docs.pylonsproject.org/projects/waitress/en/latest/ )。

有人可以向我指出一个使用 Python 3.6 在 azure 上运行的 web.config + python wsgi script 组合吗?也欢迎其他建议。

最佳答案

请引用示例web.config的内容对于 Python 3.4,请参阅 Web.config 部分文档的 Configuring Python with Azure App Service Web Apps 如果您按照 tutorial 使用下面的这些内容而不是相关内容创建您的 Django 项目。

  1. 使用 <add key="WSGI_ALT_VIRTUALENV_HANDLER" value="django.core.wsgi.get_wsgi_application()" />而不是<add key="WSGI_ALT_VIRTUALENV_HANDLER" value="app.wsgi_app" />

  2. 使用

    <add name="Python FastCGI" path="handler.fcgi" verb="*" modules="FastCgiModule"
         scriptProcessor="D:\home\Python36\python.exe|D:\home\Python36\Scripts\wfastcgi.py"
         resourceType="Unspecified" requireAccess="Script" />
    

    而不是xml路径的内容<system.webServer>/<handlers> .

还有一个Azure官方sample Django project GitHub 上,您也可以引用。

关于python - 如何使用不同的 Python 运行时将 Django/WSGI 部署为 azure web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44388970/

相关文章:

python - 如果我取消调用它的终端,PostgreSQL 填充进程会死掉吗?

python - python中的函数签名

Android向django服务器csrf发送post请求失败

django - 在表单中包含标签 django

django - 基于类的 View 和脚本调用函数

java - 如何在 Windows Azure 上部署 Java 应用程序

python - 将数组 reshape 为方形数组Python

python - 从其他实例属性派生的类实例属性

java - Azure Java SDK - Azure 身份验证对象 - 过期和处理

azure - DynamicIpSecurity 不适用于 Azure 应用服务