在IIS 10上部署FastAPI应用:详细教程

在IIS 10上部署FastAPI应用:详细教程

本教程详细指导如何在Windows Server 2019及IIS 10环境下,利用HTTP Platform Handler部署Python FastAPI应用程序。内容涵盖Python、HTTP Platform Handler的安装,FastAPI应用的代码准备与 web.config 配置,IIS应用程序池及权限设置,最终实现FastAPI应用的稳定运行与访问。

1. 环境准备与必要软件安装

在开始部署之前,确保您的windows server 2019已安装iis 10。

1.1 安装Python 64位版本

强烈建议安装Python 64位版本,并选择“为所有用户安装”,以便系统服务账户能够访问。

访问 Python官方网站 下载最新的Python 3.x 64位安装包。运行安装程序,勾选“Add Python to PATH”选项,并选择“Install Now”或自定义安装路径(例如 C:Program FilesPython312)。

1.2 安装Microsoft HTTP Platform Handler

HTTP Platform Handler是IIS与外部进程(如Python应用)通信的关键组件。

访问 IIS.net 下载适用于您系统的HTTP Platform Handler 1.2 x64版本。运行安装程序完成安装。

1.3 安装FastAPI和Uvicorn

FastAPI是一个现代、高性能的Python Web框架,Uvicorn是其推荐的ASGI服务器。

打开管理员权限的命令提示符或PowerShell。执行以下命令安装FastAPI和Uvicorn:

pip install fastapi uvicorn

2. FastAPI应用程序目录与代码准备

2.1 创建应用目录和日志目录

在C盘根目录创建应用程序主目录,例如 C:python-app。在 C:python-app 内部创建日志目录,例如 C:python-applogs。

2.2 创建FastAPI应用代码 (main.py)

在 C:python-app 目录下创建 main.py 文件,并添加以下示例代码:

from fastapi import FastAPIapp = FastAPI()@app.get("/python") # 注意:此路由路径应与IIS中配置的应用程序别名一致async def get_root():    return {"message": "Hello World from FastAPI on IIS"}

重要提示: @app.get(“/python”) 中的 /python 路径应与您稍后在IIS中为该应用设置的别名保持一致,否则可能会导致路由不匹配。

3. 配置IIS web.config 文件

在 C:python-app 目录下创建 web.config 文件,用于指导IIS如何启动和管理Python应用。

                                                                <!--  -->            

配置项说明:

processPath: 指定启动Python应用的执行文件路径。这里应指向Uvicorn的可执行文件(通常位于Python安装目录的 Scripts 文件夹下)。请根据您的Python安装路径进行调整。arguments: 传递给Uvicorn的参数。main:app 指示Uvicorn加载 main.py 文件中的 app 实例。–host 0.0.0.0 允许从任何网络接口访问,–port %HTTP_PLATFORM_PORT% 接收IIS分配的端口。–log-level info 设置日志级别。stdoutLogEnabled: 启用标准输出日志。stdoutLogFile: 指定日志文件的路径。.logsuvicorn 表示在应用目录下的 logs 文件夹中生成 uvicorn 开头的日志文件。startupTimeLimit: 应用启动的最大等待时间(秒)。processesPerApplication: 每个应用程序池允许的最大进程数。environmentVariables: 环境变量设置。PYTHONPATH 必须指向您的应用目录 (C:python-app),以便Uvicorn能够找到 main.py。

4. 配置IIS应用程序池

为了隔离和管理FastAPI应用,需要创建一个独立的应用程序池。

打开IIS管理器。在“应用程序池”右键菜单中选择“添加应用程序池”。名称: PythonAppPool (或您喜欢的任何名称)。托管管道模式: 集成。“.NET CLR 版本”: 无托管代码。点击“确定”。选中新建的 PythonAppPool,点击右侧的“高级设置…”。“标识”: 保持默认的 ApplicationPoolIdentity。这是IIS内置的账户,具有最小权限,是推荐的做法。

5. 文件系统权限设置

IIS的应用程序池标识(ApplicationPoolIdentity,代表 IUSR 和 IIS_IUSRS 组)需要对Python安装目录和FastAPI应用目录具有足够的读写权限。

码上飞 码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

码上飞 138 查看详情 码上飞

打开管理员权限的命令提示符或PowerShell。

执行以下命令授予权限(请根据您的Python安装路径调整):

# 授予IIS_IUSRS组对Python安装目录及其子目录的读取和执行权限icacls "C:Program FilesPython312" /grant "BuiltinIIS_IUSRS:(OI)(CI)(RX)"# 授予IUSR账户对Python安装目录及其子目录的读取和执行权限icacls "C:Program FilesPython312" /grant "NT AUTHORITYIUSR:(OI)(CI)(RX)"# 授予IIS_IUSRS组对FastAPI应用目录及其子目录的完全控制权限(包括日志写入)icacls "C:python-app" /grant "BuiltinIIS_IUSRS:(OI)(CI)(F)"# 授予IUSR账户对FastAPI应用目录及其子目录的完全控制权限(包括日志写入)icacls "C:python-app" /grant "NT AUTHORITYIUSR:(OI)(CI)(F)"

(OI)(CI) 表示对象继承和容器继承,使权限应用于子文件夹和文件。(RX) 表示读取和执行权限。(F) 表示完全控制权限,这对于应用写入日志文件是必需的。

6. 在IIS中添加应用程序

将FastAPI应用添加到IIS站点。

打开IIS管理器。展开“站点” -> “Default Web Site”(或您自定义的站点)。右键点击“Default Web Site”,选择“添加应用程序…”。别名: python (此别名应与 main.py 中 @app.get(“/python”) 的路由路径匹配)。应用程序池: 选择之前创建的 PythonAppPool。物理路径: C:python-app。点击“确定”。

7. 测试与验证

现在,您的FastAPI应用应该已在IIS上运行。

打开浏览器,访问 http://localhost/python (如果您在本地服务器上测试) 或 http://您的服务器IP/python。如果一切配置正确,您将看到浏览器显示 {“message”: “Hello World from FastAPI on IIS”}。

故障排除:

如果遇到HTTP 500错误,请检查 C:python-applogs 目录下的Uvicorn日志文件,它们会提供详细的错误信息。确保 web.config 中的 processPath 和 PYTHONPATH 路径正确无误。仔细检查文件系统权限是否已正确设置。

8. 生产环境优化

当应用稳定运行后,您可以进行一些优化:

日志级别: 在 web.config 中,将 arguments 中的 –log-level info 修改为 –log-level error,以减少生产环境的日志量。安全性: 确保您的FastAPI应用代码遵循安全最佳实践,例如输入验证、错误处理等。性能: 根据负载调整 processesPerApplication 参数,以优化性能。

通过遵循上述步骤,您将能够在IIS 10上成功部署和运行Python FastAPI应用程序,利用IIS的强大功能来管理和托管您的Python Web服务。

以上就是在IIS 10上部署FastAPI应用:详细教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/619194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月11日 05:38:55
下一篇 2025年11月11日 05:39:39

相关推荐

  • HTX(火必网)充值提现操作教程_到账时间及注意事项

    HTX(火必网)充值提现操作教程_到账时间及注意事项 一、HTX充值操作流程 登录 HTX 官方平台或 APP。 火币官方合作伙伴认证 · 一站式安全交易体验 官网直达: 安卓安装包下载: 进入【资产】页面,点击【充值】按钮。选择你要充值的币种(如 USDT、BTC),并确认所选链类型(如 TRC2…

    2025年12月8日
    000
  • PFVS币是什么?未来价值如何、有前景吗?PFVS币价格走势分析

    目录 什么是Puffverse(PFVS)币?PFVS币未来价值如何?PFVS币有前景吗?PFVS代币经济学和分配1. 总供应量和分配结构2. 以社区为中心的分配3. 可持续的归属时间表4. 经济可持续性机制5. 团队分配与销毁承诺PFVS币的功能1. 主要公用性与游戏整合2. 通过vePUFF转换…

    2025年12月8日
    000
  • BNB币再创新高:突破800美元,背后驱动力是什么?BNB币价格预测与未来前景分析

    目录 bnb简单介绍 BNB 价格再创新高 BNB 飙升的主要驱动力 币安币 (BNB) 价格的预测 2026年BNB价格预测 2030年BNB价格预测 2040年BNB价格预测 2050年BNB价格预测 挑战与展望 23日早上八点半前后,币安币(BNB)价格成功突破800美元心理关口,时隔七个多月…

    2025年12月8日
    000
  • BA苹果版app安装链接在哪?BA官网app苹果ios安装地址入口

    BA苹果版app的安装链接在官方指定下载页面,不在App Store上架;1、使用Safari浏览器打开官方网址;2、点击“立即安装”并允许安装配置文件;3、进入“设置”-“已下载的描述文件”并点击“安装”;4、输入设备密码验证后再次点击“安装”;5、返回桌面点击BA App图标即可使用,务必通过此…

    2025年12月8日
    000
  • 人工智能模因概念币有哪些?前景top5分析

    AI模因概念币正迅速崛起,1.Turbo(TURBO)以AI生成表情包实现日均超3000个创作;2.Goat(GOAT)依托AI聊天模型ToT并获a16z投资,打造社区共治生态;3.Fartcoin(FART)凭借搞笑放屁音效在Solana生态走红,市值达7.2亿美元;4.Act I(ACT)开创A…

    2025年12月8日
    000
  • yandex怎么下载欧易 yandex安全入口进入欧易官网

    yandex浏览器作为一款功能强大的搜索引擎和浏览器,其搜索操作直接而高效。如果您希望通过yandex寻找关于“欧易”的信息,可以遵循以下简单的步骤和建议。 yandex进入欧易: 第一步:启动浏览器与定位搜索栏 首先,请在您的电脑或移动设备上打开Yandex浏览器。浏览器启动后,您会在主页的中心位…

    2025年12月8日
    000
  • 稳定币跨链转账教程——哪些链收益最高?

    稳定币跨链转账教程——哪些链收益最高? 稳定币作为加密市场的重要资产,跨链转账成为用户实现资产自由流动的关键手段。跨链技术的发展大幅提升了转账效率和灵活性,不同链之间的转账费用、速度和安全性各异,直接影响用户的使用体验和潜在收益。 Binance币安 官网直达: 安卓安装包下载: 欧易OKX ️ 官…

    2025年12月8日
    000
  • 最新山寨币TUV是否骗局_投资者须知风险提示

    最新山寨币TUV是否骗局_投资者须知风险提示 一、TUV项目简介 tuv是一款近期在社群频繁被提及的新兴山寨币项目,号称基于“某新型共识机制”或“ai驱动的金融网络”,主打技术创新和高收益预期。尽管宣传铺天盖地,但其核心技术与团队背景仍较为模糊,值得投资者提高警惕。 Binance币安 官网直达: …

    2025年12月8日
    000
  • 比特币是否会归零_常见FUD恐慌与真相解读

    比特币是否会归零?常见FUD恐慌与真相解读 “比特币会归零”是加密市场周期中频繁出现的恐慌论调(fud)。本文将围绕这一观点,分析常见的恐慌来源,拆解背后的误区,并从技术、制度、市场多维度解读为何“归零”几乎不可能。 Binance币安 官网直达: 安卓安装包下载: 欧易OKX ️ 官网直达: 安卓…

    2025年12月8日
    000
  • Hyperlane (HYPER) 支持哪些wallet?Ledger和Trust Wallet是否兼容?

    hyperlane是一个致力于实现区块链间互操作性的协议。它允许数据和资产在不同的区块链网络之间安全地传输。这项技术旨在解决区块链生态系统中的碎片化问题,为开发者和用户提供一个统一的跨链通信框架。理解哪些钱苞支持hyperlane,对于用户参与其生态系统至关重要。 Hyperlane的跨链基础 Hy…

    2025年12月8日
    000
  • 跨链消息传递会颠覆DeFi吗?Hyperlane如何赋能链间智能合约?

    区块链互操作性需求源于多链生态的割裂,导致流动性分散和用户体验复杂;2. 跨链消息传递通过实现智能合约间的通信,突破孤岛限制并提升DeFi可组合性;3. Hyperlane通过模块化安全机制和“邮件盒”架构,支持主权共识,赋能开发者构建跨链应用;4. 跨链技术推动DeFi流动性整合与多链协议协同,实…

    2025年12月8日
    000
  • 稳定币适合新手投资吗_从稳定币开始入门币圈

    稳定币适合新手投资吗_从稳定币开始入门币圈 对于刚接触加密资产的新手来说,稳定币(stablecoin)因其价格相对稳定、风险较低而成为较好的入门选择。与波动性极大的山寨币或比特币不同,稳定币通常与法定货币锚定,避免剧烈的市场波动,是学习区块链资产操作和熟悉交易所环境的理想工具。 Binance币安…

    2025年12月8日
    000
  • 山寨币如何参与空投与社区激励?新手实操指南

    山寨币如何参与空投与社区激励?新手实操指南 对于加密货币新手而言,参与山寨币空投(airdrop)和社区激励活动不仅可以免费获取代币,也是了解项目生态的重要途径。本文将从原理、获取方式和安全操作三个维度,带你快速上手。 Binance币安 官网直达: 安卓安装包下载: 欧易OKX ️ 官网直达: 安…

    2025年12月8日
    000
  • 稳定币是什么?为什么拯救了加密市场动荡?

    稳定币是什么?为什么拯救了加密市场动荡? 稳定币(stablecoin)是一种锚定某种稳定资产(如美元、欧元或黄金)的加密货币,其目的是减少价格波动。它既拥有加密货币的便捷性,又具备法币的价格稳定性,在市场剧烈波动中成为避险工具和交易中介。 Binance币安 官网直达: 安卓安装包下载: 欧易OK…

    2025年12月8日
    000
  • 山寨币社区活动与激励机制

    山寨币社区活动与激励机制 社区是山寨币项目的生命线。一个活跃、忠诚且富有创造力的社区,不仅能推动代币传播,还能强化项目生态、吸引开发者与投资者。为了鼓励用户参与,山寨币项目通常会设计多种社区活动与激励机制,以增强用户粘性与共识。 Binance币安 官网直达: 安卓安装包下载: 欧易OKX ️ 官网…

    2025年12月8日
    000
  • 区块链确认时间是什么?如何查询交易在区块链上的确认状态?

    区块链确认时间是指交易从广播到被区块打包并写入链上所需的时间,不同链的确认速度各异。1、比特币平均10分钟出块,建议6次确认以确保安全;2、以太坊约12秒出块,1-3次确认即可,多数交易1分钟内完成;3、BSC链区块时间约3秒,适合高频交易;4、TRON波场区块时间1-3秒,适用于实时转账;5、Po…

    2025年12月8日
    000
  • NEAR币近期生态频繁扩张 是否利好NEAR币价?

    近期,NEAR协议(NEAR Protocol)动作频频:不但在AI、DePIN等热门赛道积极布局,还通过链上互操作性与EVM兼容性吸引了大量开发者与资金。这一轮生态扩张是否将为NEAR币带来实质利好?本文将带你全面解读。 在了解NEAR币前,建议先通过主流交易平台完成账户注册,以便随时查看NEAR…

    2025年12月8日
    000
  • 安卓系统币安交易所APP下载 3.0.5版本注册到安装全流程

    币安(binance)作为国际领先的区块链数字资产交易平台,致力于为全球用户提供广泛的数字货币交易、投资及资产管理服务。它凭借安全可靠的系统、丰富的交易对和流畅的用户体验,赢得了广大用户的信赖。本文为您整理了官方app的下载与安装教程,用户点击本文提供的下载链接即可获取官方最新版本的应用程序,开启便…

    2025年12月8日
    000
  • 币安Binance官方正版APP v2.85.3_币安最新安卓版交易平台

    币安APP v2.85.3安卓版通过性能优化、界面微调、安全加固和交易工具增强提升了用户体验,1、优化了应用启动速度与运行流畅度;2、调整UI使数据展示更清晰、操作更便捷;3、升级安全机制,强化设备验证与异常行为监测;4、增强交易功能,新增技术指标并丰富币种选择;用户应通过1、访问官网;2、点击下载…

    2025年12月8日
    000
  • 虚拟币靠什么流通?链上机制简明科普

    虚拟币(如比特币、以太坊)不同于传统货币,它的流通并不依赖银行或央行,而是基于“区块链”这套去中心化机制完成价值传递。对于新手来说,了解币是如何“动起来”的,是理解加密世界的第一步。 如果你想尝试体验虚拟币交易,推荐先在以下两个主流平台注册账户: 币安Binance:全球交易量最大的平台,支持主流币…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信