我不是该专业的nginx专业人士或业余爱好者,只知道如何大量使用Google,并且我需要完成反向代理的帮助。
我目前拥有一台处理连接的主服务器,然后将客户端交给8个后端服务器之一,这些后端服务器以TS或HLS方式传输流。我想在前端放置一个代理,它既充当主服务器,又提供流(我想是边缘服务器,但没有缓存),以便隐藏源服务器。
我已经将其与TS配合使用,但是无论我捕获了多少数据包,我都无法一生锻炼如何使其与HLS配合使用。它可以很好地显示清单,但与TS不同的是,它不会从原始服务器中提取分段。
这是我到目前为止已完成的代码(可能更简洁,但这全部由Google完成)
server {
listen 80;
server_name proxy_IP_here;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
location ~ .(m3u8|mpd)$ {
proxy_pass backend_IP_for_Main;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
}
}
location / {
proxy_pass backend_IP_for_Main;
sub_filter 'dns_i_have_it_fildering_here' 'proxy_IP_here';
sub_filter_once off;
sub_filter_types text/javascript application/json;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
}
location @handle_redirects {
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
如果我删除 proxy_intercept_errors开启; error_page 301302307 = @handle_redirects; 来自.mm3u8位置块HLS的内容将起作用,但将由原始服务器直接传递给最终客户端,而不是通过代理传递。
任何帮助都将不胜感激。
谢谢。