Привіт.
Хочу розповісти вам кілька цікавих новин про те, що відбувається з Portaller - невеликим сервісом для використання Pandora, Spotify, Netflix і ще декількох сервісів за межами США.
Одним рядком, якщо у вас немає часу йти під кат - крім Pandora і Spotify тепер підтримується Netflix і Amazon Video, сервіс працює на всіх пристроях, включаючи клієнтів на Android (чому на ньому такий акцент - читайте нижче) і до нього можна приєднатися на GitHub.
Проект на GitHub
Головне, що відбувається з ним в цей непростий час - він працює і залишається безкоштовним і відкритим. Якщо ви хочете чимось допомогти або ж просто «зробити собі такий же» - будь ласка, приєднуйтесь.
Скільки потрібно трафіку
Коли сервіс тільки запускався, я, як і багато коментаторів, був вельми скептичний з приводу потужності і запасу трафіку на молодших дроплетах в DigitalOcean. Сумніви виявилися марними - всі підтримувані зараз сервіси вміють передавати контент безпосередньо клієнту, використовуючи проксирування тільки для того, щоб створити/оплатити акаунт, авторизуватися або передати керуючі команди. Сумарний обсяг місячного трафіку при такому використанні - в районі 200ГБ.
Які сервіси підтримуються
На старті сервіс вмів працювати тільки з Pandora і Spotify, і тільки в браузері або в додатках на iOS. Зараз підтримуються п'ять сервісів - три аудіо (Pandora, Spotify, Rdio) і два відео (Netflix і Amazon Video). Що набагато важливіше, всі вони працюють на всіх платформах - у браузері, десктопних клієнтах, телевізорах зі SmartTV, на iOS і Android.
Які виникають труднощі
Я спеціально зробив акцент на підтримці платформ через її нетривіальність, особливо на Android - раптом вам коли-небудь знадобиться. Справа в тому, що багато програм на Android при роботі з SSL використовують бібліотеки без підтримки SNI (Server Name Indication) і, відповідно, не передають ім'я домену всередині SSL сесії. Через це просте проксирування запитів силами sniproxy/haproxy стає неможливим - додаток поводиться, умовно, як наївна дівчина, і у них виходить приблизно такий діалог:
Pandora: - Я прийшла. Давай (чогось чекає)
SNIproxy: - Що дати-то? (не розуміє що потрібно віддати)
Pandora: - Я прийшла. Давай (повторює запит і все ще чогось чекає)
SNIproxy: - Що дати-то? (все ще нічого не розуміє)
Pandora: - Ну і гаразд, я йду (розриває конекшен, показує користувачеві повідомлення про помилку)
SNIproxy розводить руками і пише про помилку в лог.
Ну ви зрозуміли. Якщо ж додаток використовує SNI, то вже з першої фрази картина змінюється - вона прямо повідомляє, до якого домену хоче звернутися і складнощів з проксируванням таких запитів не виникає. Рішення я знайшов тільки одне - для кожного домену, з яким такий додаток хоче працювати за SSL, потрібно піднімати окремий IP і описувати його у вигляді окремої зони в DNS. У цьому випадку проксирування на цій адресі буде працювати тільки з одним доменом і додаток це, ясна річ, влаштує.
Практично кінець
Наостанок хочу дати вам ось таке посилання - http://portaller.com/setup. Там розповідається як налаштувати DNS на різних пристроях (загалом-то ніякого rocket science), але якщо вам знадобиться дізнатися як отримати доступ до US-only SmartTV додатків на телевізорах Samsung - вона може виявитися корисною.
Приходьте, користуйтеся на здоров'я.