首页 > 解决方案 > 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; 但它也不起作用。

有人可以帮忙吗?

标签: nginxproxyhttp-live-streamingproxypassm3u8

解决方案


推荐阅读