Windows 系统上使用 IIS 发布基于 Python Flask 的网站

在 Windows 系统上使用 IIS 发布基于 Python Flask 的网站,需通过 FastCGI 和 wfastcgi 桥接 IIS 与 Python。

一、环境准备

二、启用 wfastcgi

  • 以管理员身份运行命令提示符:
    wfastcgi-enable
    
    记录输出中的 Python 路径 和 wfastcgi 路径(如
    C:\Python39\python.exe|C:\Python39\Lib\site-packages\wfastcgi.py)。

三、部署 Flask 应用

  • 目录结构示例:
    C:\MyFlaskApp\
    │   app.py          # Flask 主程序
    │   web.config      # IIS 配置文件
    ├── static/         # 静态文件(CSS/JS/图片)
    └── templates/      # HTML 模板
    
  • Flask 应用示例(app.py):
    from flask import Flask, render_template
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return render_template('index.html')
    
    if __name__ == '__main__':
        app.run()
    
  • 配置 web.config
    在应用根目录创建 web.config,替换 <Python路径> <wfastcgi路径>
    <configuration>
      <system.webServer>
        <handlers>
          <add name="Python FastCGI" 
               path="*" 
               verb="*" 
               modules="FastCgiModule" 
               scriptProcessor="<Python路径>|<wfastcgi路径>"
               resourceType="Unspecified" />
        </handlers>
        <security>
          <requestFiltering>
            <requestLimits maxAllowedContentLength="1073741824" /> <!-- 允许大文件上传 -->
          </requestFiltering>
        </security>
      </system.webServer>
      <appSettings>
        <add key="WSGI_HANDLER" value="app.app" /> <!-- Flask 实例的模块路径 -->
        <add key="PYTHONPATH" value="C:\MyFlaskApp" /> <!-- 应用根目录 -->
        <add key="WSGI_LOG" value="C:\MyFlaskApp\logs.txt" /> <!-- 日志文件(可选) -->
      </appSettings>
    </configuration>
    

四、配置 IIS 网站

  • 创建新网站

    • 打开 IIS 管理器,右键 网站 > 添加网站

    • 设置 站点名称、物理路径(应用根目录)、端口(如 80)。

  • 配置应用程序池

    • 应用程序池 中,找到该网站对应的池,右键 基本设置

      • .NET CLR 版本 改为 无托管代码

      • 标识 改为有权限访问应用目录的账户(如 LocalSystem)。

  • 处理静态文件

    • 确保 IIS 的 静态内容 功能已启用(在 Windows 功能中检查)。
  • 重启 IIS

    iisreset
    

五、测试与排错

  • 访问网站
    在浏览器输入 http://localhost 查看是否正常。

  • 常见错误排查:

    • 500 错误:检查 web.config 中的路径和 WSGI_HANDLER 是否正确。
    • 静态文件 404:确保 IIS 静态文件模块已安装,且文件路径正确。
    • 权限问题:右键应用目录 > 属性 > 安全,添加 IIS_IUSRS 并赋予读写权限。
    • 查看日志:检查 C:\MyFlaskApp\logs.txt 或 IIS 的 失败请求跟踪

六、高级配置(本地可不配置)

  • 使用虚拟环境:在 web.config 中指定虚拟环境的 Python 路径。
  • HTTPS:在 IIS 中绑定 SSL 证书。
  • URL 重写:通过 IIS 的 URL 重写模块 配置自定义路由规则。

完成以上步骤后,你的 Flask 应用即可通过 IIS 在 Windows 上稳定运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值