You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIS Default WebSite下将Python Flask部署为应用程序?

将Flask应用部署为IIS Default WebSite的子应用程序

以下是针对你现有环境的一步步配置流程:

1. 停止独立的Flask站点

打开IIS管理器,找到名为flask的独立网站,右键选择停止,避免后续配置时的资源冲突。

2. 迁移Flask应用文件到Default WebSite目录

  • 在Default WebSite的根目录(默认路径为C:\inetpub\wwwroot)创建名为flask的子文件夹。
  • 将原独立Flask站点的所有文件(包括虚拟环境、主程序文件、静态资源、模板等)完整复制到这个新的flask文件夹中。

3. 配置FastCGI应用

Flask在IIS中依赖FastCGI处理请求,需先配置对应Python环境的FastCGI应用:

  • 在IIS管理器的服务器级别(非站点/应用级别)找到FastCGI设置。
  • 点击右侧的添加应用程序,在弹出的对话框中:
    • 可执行文件:选择Flask虚拟环境下的python.exe路径,例如C:\inetpub\wwwroot\flask\venv\Scripts\python.exe。
    • 参数:填写wfastcgi.py的路径,一般在虚拟环境的site-packages目录下,例如C:\inetpub\wwwroot\flask\venv\Lib\site-packages\wfastcgi.py。
  • 保存配置,记住这个FastCGI应用的完整scriptProcessor值(即两个路径用竖线|连接的字符串,后续配置会用到)。

4. 在Default WebSite下创建子应用

  • 回到IIS管理器,找到Default WebSite,右键选择添加应用程序。
  • 别名:填写flask(这将作为访问路径的一部分,例如http://你的域名/flask)。
  • 物理路径:选择刚才创建的C:\inetpub\wwwroot\flask文件夹。
  • 应用程序池:可选择现有适配Python的应用池,或新建一个:
    • 新建应用池时,名称设为FlaskAppPool,.NET CLR版本选择无托管代码,管道模式选择集成。
  • 点击确定完成子应用创建。

5. 配置web.config文件

在C:\inetpub\wwwroot\flask文件夹中创建或修改web.config文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" 
                 scriptProcessor="C:\inetpub\wwwroot\flask\venv\Scripts\python.exe|C:\inetpub\wwwroot\flask\venv\Lib\site-packages\wfastcgi.py" 
                 resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
    <appSettings>
        <!-- 替换为你的Flask应用入口:主文件名.实例名,例如app.py里的app实例就是app.app -->
        <add key="WSGI_HANDLER" value="app.app" />
        <add key="PYTHONPATH" value="C:\inetpub\wwwroot\flask" />
        <!-- 可选:日志路径,需提前创建logs文件夹 -->
        <add key="WSGI_LOG" value="C:\inetpub\wwwroot\flask\logs\wfastcgi.log" />
    </appSettings>
</configuration>
  • 重点修改WSGI_HANDLER:如果主程序文件是run.py,Flask实例名为application,则改为run.application。
  • 确保scriptProcessor的值和之前配置FastCGI时的路径完全一致。

6. 设置文件夹权限

  • 右键点击C:\inetpub\wwwroot\flask文件夹,选择属性 -> 安全 -> 编辑。
  • 添加IIS应用池用户(例如IIS AppPool\FlaskAppPool),赋予读取&执行、列出文件夹内容、读取权限;若需要写入操作(如文件上传),额外添加写入权限。
  • 虚拟环境文件夹也需设置相同权限。

7. 测试访问

启动Default WebSite,在浏览器中访问http://你的域名/flask,验证Flask应用是否正常加载。

常见问题排查

  • 500内部错误:查看wfastcgi.log(若已配置),大概率是WSGI_HANDLER或PYTHONPATH配置错误,或虚拟环境依赖缺失。
  • 404错误:检查子应用别名是否正确,物理路径是否指向包含web.config的Flask文件夹。
  • 若提示wfastcgi.py不存在,进入虚拟环境运行pip install wfastcgi安装依赖。

内容的提问来源于stack exchange,提问作者Fatih Enes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:13:13