ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
3   •   Посмотреть все темы

Icecast 2.3.2 и HTTP Redirect (302)

 

19
Kompik @Kompik
В фичах icecast`a заявленно
Relays handle redirection (HTTP 302) if one is received at startup.

Как я понимаю, при релеенги других радиостанций ice cast в случае обнаружение HTTP Redirect`a должен переходить по указанному адресу.

Складывается ощущение что он нифига по этим адресам не переходит.

Вопрос: Надо что-то где-то включать? Или я что-то не понимаю? В доке по этому поводу ничего не указанно.

Вопрос 2: Можно ли каким-то образом для одного local-mountpoint указать несколько источников, что бы в случае недоступности одного, поток брался с другого ?

1572
KyPIIaToB @KyPIIaToB
Kompik пишет:

Вопрос 2: Можно ли каким-то образом для одного local-mountpoint указать несколько источников, что бы в случае недоступности одного, поток брался с другого ?

fallback

19
Kompik @Kompik
Не, не совсем ...В случае с fallback я должен знать адрес запасного сервера

А здесь ситуация когда радио выдает адрес типа listen.radio.ru/listen128

А при обращении по адресу, сервер отдает 302 Found с новым урлом по которому реально идет трансляция.

Как я понимаю IceCast должен уметь переходить по такого рода перенаправлениям...
или я что-то не понимаю?

1572
KyPIIaToB @KyPIIaToB
выложи проблемный конфиг

19
Kompik @Kompik
Ок.

Вводные данные.
Есть адрес потока: **********

В конфиге секция relay выглядит таким образом:

<relay>
<server>listen.radionomy.com</server>
<port>80</port>
<mount>/allegro-lounge</mount>
<local-mount>/Allegro.Lounge</local-mount>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
<on-demand>1</on-demand>
</relay>

В этом случае ничего не работает, так как при обращении по адресу listen.radionomy.com/allegro-lounge происходир редирект на совершенно другой адрес.
И вот если его уже прописать в конфиг icecast`a, то все ок.

Но хотелось бы чтобы все это было автоматически.

1572
KyPIIaToB @KyPIIaToB
Ну дак ты пропиши этот адрес с которым все ок.

19
Kompik @Kompik
Сейчас так и делаю..
но эти адреса имеют тенденцию меняться... При этом входной url (**********) остается неизменным
И если бы научить icecast понимать эти редиректы, то жизнь бы упростилась ...

А то поди, пойми когда адрес сменится ...

1572
KyPIIaToB @KyPIIaToB
Ну возможно у них просто распределение нагрузки идет. К примеру у меня на радио раньше было такое, при обращении к потоку, кидает на один из двух трансляторов.

114
lex46 @lex46
Пользуясь случаем задам вопрос:
Можно ли как-то сделать на фаллбэк поток такое: в случае отсутствия потока на 1-м источнике пробует брать поток со 2-го источника.

19
Kompik @Kompik
Можно.
Дисскусия про это в соседней теме. Называется IceCast и mount-name ...
**********

Добавлено спустя 1 минуту 7 секунд:
Добавлено спустя 59 секунд:
KyPIIaToB пишет:

Ну возможно у них просто распределение нагрузки идет. К примеру у меня на радио раньше было такое, при обращении к потоку, кидает на один из двух трансляторов.

Это понятно что идет распределение нагрузки ....
Я к тому что iceCast по видимому не умеет отрабатывать такие вещи.

или я не прав?

156
Eugene @MechanisM
йлу хлпсф зенюенв NGINX диг меневднезвтсс кв нвдслмлолхс.
upstream radioservers {
ip_hash;
server radioserver.no1:8080/128kbps.mp3;
server radioserver.no2:8080/128kbps.mp3;
server radioserver.no3:8080/128kbps.mp3;
fair; # eto tipa balansirovki megdu dannimi potokami
}

server {
listen 80;
server_name radioserver.main;

location / {
proxy_buffering off;
proxy_ignore_client_abort off;
proxy_intercept_errors on;
proxy_next_upstream error timeout invalid_header;
proxy_redirect off;
proxy_set_header X-Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Icy-MetaData 1; # SPECIALNO DLYA RADIOSERVERA
#proxy_set_header User-agent WinampMPEG/5.57;
proxy_connect_timeout 60;
proxy_send_timeout 21600;
proxy_read_timeout 21600;

proxy_pass **********
}
}

МНС ОВХЛЙ НВЗХИВДЕ МЛОЛХ ЙЛРКЛ ЗИЪЩВОЫ ХВХ-ЧЪДОЛ КВ МЛНОЪ 80 АЕНЕЖ ********** В ХЛКПСФ З fair; МНЛХЗСО КВ ЗВЙЭУ ДЛЗОЪМКЭУ ЗЕНЮЕН СЖ ЧИЛХВ upstream.

Дмючайелм ъняъпз 1 куляпя 31 ъеиялдя:
chto za krokozyabri tut vodyatsya u vas na forume? nfpishu translitom togda. eto kusok konfiga nginx kotorij ya ispolzuu na 2-h krupnih stanciyah v UK & USA. dannij konfig balansiruet nagruzku mejdu neskolkimi radioserverami i takzhe pozvolyaet slushat potok kakbudto s porta 80.

Отредактировано MechanisM - 29.05.2011
156
Eugene @MechanisM
A YESLI SDELAT TAK
upstream radioservers {
ip_hash;
server radioserver.no1:8080;
server radioserver.no2:8080;
server radioserver.no3:8080;
fair; # eto tipa balansirovki megdu dannimi potokami
}

server {
listen 80;
server_name radioserver.main;

location / {
proxy_buffering off;
proxy_ignore_client_abort off;
proxy_intercept_errors on;
proxy_next_upstream error timeout invalid_header;
proxy_redirect off;
proxy_set_header X-Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Icy-MetaData 1; # SPECIALNO DLYA RADIOSERVERA
#proxy_set_header User-agent WinampMPEG/5.57;
proxy_connect_timeout 60;
proxy_send_timeout 21600;
proxy_read_timeout 21600;

proxy_pass **********
}
}

TO MOUNTPOINTS MOJNO PODSTAVLYAT K radioserver.main NAPRIMER: radioserver.main/mount1 i radioserver.main/mount2 a nginx uje sam perenapravlyaet ves mejdu serverami.

221
Дмитрий @ElectroNik
Про распределение нагрузки можно по подробнее?
Как можно реализовать без nginx?

Отредактировано ElectroNik - 31.05.2011
1572
KyPIIaToB @KyPIIaToB
динамик dns

221
Дмитрий @ElectroNik
KyPIIaToB пишет:

динамик dns

Без сторонних сервисов возможно?

1572
KyPIIaToB @KyPIIaToB
ElectroNik пишет:

Без сторонних сервисов возможно?

Вот по этому поводу даже хз

156
Eugene @MechanisM
ElectroNik пишет:

ак можно реализовать без nginx?

медленный как корова apache может тоже =)

221
Дмитрий @ElectroNik
MechanisM пишет:

ElectroNik пишет:

ак можно реализовать без nginx?

медленный как корова apache может тоже =)

Где что прописывать надо, что бы подключающихся именно на по 8000 порту перекидывало?

156
Eugene @MechanisM
не знаю)) я апач уже забыл и вспоминать не хочу. если ты про него конечно. но есть у него прокси-модули которые способны такое проделать.

23
Сергей @SergikS
MechanisM, в таком виде это не совсем распределение нагрузки, т.к. канал жрется избыточно.
Получается, все слушатели подключены к одному серверу, где стоит прокси Энджин-Икс, а тот уже получает потоки от трех (в данном примере) апстримов.
Если и апстримы и nginx живут на одной площадке, или на быстрой шине - все ок. Но для слушателей выгоды ноль: что перец из Огайо, что из Новокузнецка, все будут тянуть поток с одного-единственного сервера, и кому-то точно будет далеко.

DNS-карусель и то лучший вариант в данном случае, хотя и не учитывает гео-близость, и наличие свободных слотов на очередном рилее.

В общем, интересно знать, как работают рилеи ********** : )