on_click
@on_click

Почему не срабатывает sub_filter nginx?

Приветствую!

Есть вот такая ссылка на плейлист vimeo
https://player.vimeo.com/external/549610273.m3u8?s=94f4d1739192ea261e18b5de5be7e670d4153219

Внутри этого плейлиста содержатся дочерние плейлисты.
#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-medium",NAME="audio",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="https://192vod-adaptive.akamaized.net/exp=1621094196~acl=%2Fc70bafbf-59f9-45f4-9d51-27fa3ef1081f%2F%2A~hmac=451ab23c222faeea960e389e6291d75c911e962bd241b750cdf248f1697eb20f/c70bafbf-59f9-45f4-9d51-27fa3ef1081f/sep/audio/e78a1360/playlist.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-high",NAME="audio",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="https://192vod-adaptive.akamaized.net/exp=1621094196~acl=%2Fc70bafbf-59f9-45f4-9d51-27fa3ef1081f%2F%2A~hmac=451ab23c222faeea960e389e6291d75c911e962bd241b750cdf248f1697eb20f/c70bafbf-59f9-45f4-9d51-27fa3ef1081f/sep/audio/de394c32/playlist.m3u8"

#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=270189,AVERAGE-BANDWIDTH=247000,RESOLUTION=426x240,FRAME-RATE=30.000,CODECS="avc1.640015,mp4a.40.2",AUDIO="audio-medium"
https://192vod-adaptive.akamaized.net/exp=1621094196~acl=%2Fc70bafbf-59f9-45f4-9d51-27fa3ef1081f%2F%2A~hmac=451ab23c222faeea960e389e6291d75c911e962bd241b750cdf248f1697eb20f/c70bafbf-59f9-45f4-9d51-27fa3ef1081f/sep/video/a04493cb/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=408491,AVERAGE-BANDWIDTH=364000,RESOLUTION=640x360,FRAME-RATE=30.000,CODECS="avc1.64001E,mp4a.40.2",AUDIO="audio-medium"
https://192vod-adaptive.akamaized.net/exp=1621094196~acl=%2Fc70bafbf-59f9-45f4-9d51-27fa3ef1081f%2F%2A~hmac=451ab23c222faeea960e389e6291d75c911e962bd241b750cdf248f1697eb20f/c70bafbf-59f9-45f4-9d51-27fa3ef1081f/sep/video/e78a1360/playlist.m3u8
...

Необходимо запроксировать как основной плейлист, так и заменить ссылки на дочерние. Думал что с этим справится sub_filter, но при использовании конфига ниже и запросе данного url
http://45.141.76.164:8282/p/player.vimeo.com/external/549610273.m3u8?s=94f4d1739192ea261e18b5de5be7e670d4153219
ссылки на дочерние плейлисты остаются неизменными.
server {
    listen 8282;
    resolver 8.8.8.8;

    location ~* ^/p/(.*)$ {
        proxy_set_header Accept-Encoding "";
        proxy_pass https://$1$is_args$args;
        sub_filter_once off;
        sub_filter_types *;
        sub_filter 'https://' 'http://45.141.76.164:8282/p/';
    }
}

Пробовал разные filter_types: *, application/vnd.apple.mpegurl, application/x-mpegURL - безрезультатно
Подскажите пожалуйста, можно ли это как то побороть? В обычном текстовом файле на моем сервере подмена происходит корректно, а вот плейлист от vimeo изменить не выходит. Спасибо!

nginx -V 
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: 
--with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-5J5hor/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi 
--with-debug 
--with-compat 
--with-pcre-jit 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_realip_module 
--with-http_auth_request_module 
--with-http_v2_module 
--with-http_dav_module 
--with-http_slice_module 
--with-threads 
--with-http_addition_module 
--with-http_gunzip_module 
--with-http_gzip_static_module 
--with-http_image_filter_module=dynamic 
--with-http_sub_module 
--with-http_xslt_module=dynamic 
--with-stream=dynamic 
--with-stream_ssl_module 
--with-mail=dynamic 
--with-mail_ssl_module
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@dodo512
Сервер отвечает редиректом с кодом 302 и нужно добавить proxy_redirect
proxy_redirect 'https://' 'http://45.141.76.164:8282/p/';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы