nginx - HLS 流、nginx 反向代理、带变量的 proxy_pass
问题描述
我试图反向代理 HLS 流(m3u8)。
我的 nginx 配置:
server {
server_name proxy.domain.com;
resolver 8.8.8.8;
location / {
set $backend $arg_url;
proxy_pass http://$backend;
}
}
当我尝试使用http://proxy.domain.com/hls/live/stream.m3u8?url=stream.domain.com访问流时, 它为 m3u8 提供了 HTTP/1.1" 200
"GET /hls/live/stream.m3u8?url=stream.domain.com HTTP/1.1" 200
但在此之后,它会为 .ts 文件提供 HTTP/1.1" 500 错误!
"GET /hls/live/20190502T232455-05-14196689.ts HTTP/1.1" 500
当我检查错误日志文件时
[error] 32069#32069: *16 invalid URL prefix in "http://", client: MY IP, server: proxy.domain.com, request: "GET /hls/live/20190502T232455-05-14196689.ts HTTP/1.1", host: "proxy.domain.com", referrer: "http://player.url.com/?source=https://proxy.domain/hls/live/stream.m3u8?url=stream.domain.com"
我试过 proxy_pass http://$arg_url; 但它也不起作用。
有人可以帮忙吗?
解决方案
推荐阅读
- angular - 如何通过单击条形图中的特定条形导航到具有相同标题/系列名称的另一个图表?
- javascript - 在 typescript 中解析 CLI 中的文本
- reactjs - {React Native} Firebase - 导航前更新用户值仅在软刷新后有效
- android - 在androidNDK中使用FFmpeg库播放视频
- brightness - Halcon - 设置图像亮度/曝光
- r - 有人可以解释 R 软件中 %in% 的参数顺序吗?
- excel - 已存在具有该名称的查询
- http - 是否在任何浏览器中实现了“HTTP 的相互验证协议”(RFC 8120)?
- javascript - PHP preg_replace 转换为 Javascript 替换
- c# - 如何从 specflow 挂钩访问另一个类的方法