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

在Heroku上配置FastAPI应用启用HTTPS以获取音频输入权限

问题解答

关于HTTP下浏览器阻止音频权限请求的确认

是的,现代浏览器出于安全考量,会阻止HTTP协议环境下的媒体设备(麦克风、摄像头等)权限请求。仅在HTTPS安全上下文或本地localhost环境中,才允许调用媒体设备API,这就是你本地运行正常但生产环境失效的核心原因。

Heroku环境下的HTTPS配置方案

你直接通过Uvicorn配置SSL证书的方案不可行。原因是Heroku的网络架构中,所有外部请求会先经过Heroku负载均衡器,负载均衡器已自动完成SSL终止——Heroku为所有应用提供免费的SSL证书,无论是默认的your-app.herokuapp.com域名还是自定义域名,都可直接使用HTTPS。自行配置Uvicorn的SSL参数反而会导致负载均衡器与应用的通信异常。

正确操作方式:

  • 确保FastAPI应用监听Heroku动态分配的PORT环境变量(不能硬编码端口号)
  • 启动Uvicorn时无需添加任何SSL相关参数,Heroku会自动将外部HTTPS请求转发到应用的HTTP端口
  • 引导用户通过HTTPS协议访问应用(Heroku默认会将HTTP请求重定向到HTTPS)

示例启动配置(Procfile文件)

web: uvicorn main:app --host 0.0.0.0 --port $PORT

按此配置后,用户通过HTTPS访问应用时,浏览器就会正常允许音频权限请求。

内容的提问来源于stack exchange,提问作者Zine eddine Boumaza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:52:02