[英]Setting up a Python server in Azure Web Apps
我正在寻找一种配置Flask应用程序以在Azure Web Apps上运行的可理解的方式。 尽管我知道使用现成的服务会带来一些要求,但我希望能够使环境尽可能接近原始环境。
我对本地设置的赞赏是:
.py
脚本即可使用Waitress运行服务器的简单方法 pip install -e ./
) 设置应用程序并使用Flask启动它非常容易。 这是我最简单的app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def main():
return 'Hi.'
if __name__ == '__main__':
app.run('0.0.0.0', 5000)
现在有本指南 ,介绍如何在Azure中建立Python网站。 我认为它有很多不必要的步骤,可以从单独的服务器上下载车轮,修改os.path
以导入库,并使用virtualenv
。 不要误会我的意思: virtualenv
很有用,但我只是尝试将过程缩减到最低限度。 另外,对我而言,至少virtualenv
激活脚本不起作用。
微软本人本次的另一本指南说,Windows开发人员应该改为使用适用于Linux的Azure Web App。 但是暂时,我仍停留在Windows应用程序上。 他们提供了一些配置帮助。
提供了Python安装。 它奇怪地位于D:\\home
并且无法使用简单的python
命令启动其解释器。 尽管可以安装库: python -m pip install lib
。 配置文件应该从某些Visual Studio模板构造而来,至少我的Visual Studio无法找到。 因此,我现在在第一个指南中填写的是
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
scriptProcessor="D:\home\Python364x64\python.exe|D:\home\Python364x64\wfastcgi.py"
resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
应该在文档的某处添加另一行。 虽然,目前尚不清楚确切的位置。
<add key="WSGI_HANDLER" value="FlaskAzurePublishExample.app"/>
所以我想知道的是:
对于第一个问题,您可以参考我对其他现有SO线程的回答。Hosting Flask(Python)应用程序抛出CGI错误以运行最小的Flask应用程序。 而且您的代码中存在一个问题,该问题由wfastcgi.py
使用app.run()
,而不是使用app.run('<ip or host for listening>', '<a port you want>')
。 在Azure上,IIS作为Python的HTTP服务器,可以通过FastCGI运行flask应用程序。
因此,对于第二个问题,您可以在IIS反向代理后面运行自己的服务器,但是Azure网站上的唯一端口是IIS上的80
端口,用于通过FastCGI服务Python Web App。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.