Перейти к основному содержимому

Сети доставки контента (CDN)

Что такое CDN?

CDN, или сеть доставки контента, — это служба, используемая для географического распределения вашего контента для конечных пользователей. Она помогает улучшить производительность, сокращая время загрузки контента.

CDN работает, распределяя контент между несколькими серверами, стратегически расположенными в различных географических точках. Это распределение гарантирует, что контент доставляется с сервера, который физически ближе к пользователю, сокращая расстояние, которое данным нужно пройти. Это также помогает снизить нагрузку на исходный сервер (ваш сервер Owncast), переключая доставку контента на серверы CDN.

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

Помимо кэширования, CDN могут также предоставлять другие функции оптимизации, такие как сжатие данных и меры безопасности, такие как защита от DDoS-атак. Эти дополнительные функции способствуют дальнейшему улучшению производительности, масштабируемости и доступности веб-сайтов и веб-приложений.

Как это полезно для вашего потока Owncast?

Поместив CDN перед вашей инстанцией Owncast, он может быть полезен для зрителей вашего потока, которые могут находиться географически далеко от вашего сервера, что замедляет поток вашего видео и может вызвать буферизацию или другие проблемы.

Кроме того, ваша вся веб-страница Owncast загрузится быстрее для всех посетителей, так как CDN будет кэшировать и обслуживать статические ресурсы (такие как CSS, JavaScript, изображения и т. д.), которые составляют вашу инстанцию Owncast.

В чем разница между поставщиком хранилища и CDN?

CDN разработаны для улучшения производительности доставки и снижения задержки, кэшируя и распределяя контент с серверов, расположенных ближе к пользователям. Поставщики хранилища сосредоточены на предоставлении масштабируемой и надежной инфраструктуры хранения для хранения данных. Хотя в функциональности может быть некоторое совпадение, их основные цели и функции отличают их друг от друга.

Хотя CDN и поставщики хранилища — это две разные услуги, некоторые поставщики объектного хранилища могут предлагать встроенные CDN, которые можно включить.

Как вы можете использовать CDN с Owncast?

Хотя невозможно в подробностях описать каждого поставщика CDN и конфигурацию, вот высокоуровневые шаги, которые вам нужно выполнить, чтобы поставить CDN перед вашей инстанцией Owncast.

Без поставщика хранилища

  1. Ваш фактический сервер Owncast, известный CDN как "исходный сервер", должен иметь публично доступное имя хоста, отличное от того, которое вы используете для доступа к вашей инстанции Owncast. Например, если вы хотите, чтобы ваши зрители получали доступ к вашей инстанции Owncast по адресу https://owncast.example.com, вам нужно создать новое имя хоста, например owncast-origin.example.com, и указать его на ваш сервер Owncast.
  2. В вашей конфигурации CDN вам нужно указать использовать owncast-origin.example.com в качестве исходного сервера для вашей инстанции Owncast.
  3. Вам нужно обновить свою конфигурацию DNS, чтобы указать имя хоста вашей Owncast на ваш CDN. Например, если вы получаете доступ к вашей инстанции Owncast по адресу https://owncast.example.com, вам нужно обновить конфигурацию DNS, чтобы указать, что owncast.example.com указывает на ваш CDN вместо вашего фактического сервера.
  4. Visit your Owncast admin and go to Configuration > Server Setup. On the Server Config tab, under Advanced Settings, set the "Websocket host override" to the origin URL you created in step 1. For example, https://owncast-origin.example.com. The field takes a regular http:// or https:// URL and the web player converts it to a websocket connection. Если вы не выполните этот шаг, ваш чат больше не будет доступен для поставщиков CDN, которые не поддерживают передачу вебсокетов. See the server setup documentation for more about these settings.

С внешним поставщиком хранилища

  1. В этой конфигурации ваш поставщик хранилища является исходным сервером, а не вашим сервером Owncast.
  2. Получите имя конечной точки для вашего хранилища от вашего провайдера.
  3. В вашей конфигурации CDN вам нужно указать использовать имя хоста поставщика хранилища в качестве исходного сервера.
  4. In the Owncast admin go to Configuration > Server Setup. On the Server Config tab, under Advanced Settings, set the "Serving Endpoint" to the full URL of your CDN deployment. For example, https://cdn.example.com. See the server setup documentation for more about these settings.

Вещи, которые следует учитывать

  • Ваш сервер Owncast (исходный сервер) должен по-прежнему находиться в сети с достаточной скоростью для доступа CDN к вашему контенту и его распределения к вашим зрителям. Просто добавление CDN не сделает автоматически сеть вашего Owncast быстрее, хотя это может уменьшить сетевую нагрузку на ваш сервер через кэширование.
  • В некоторых случаях использование CDN перед вашим сервером Owncast усложняет получение точного количества зрителей. Это компромисс, который вам нужно будет учитывать. Как правило, если у вас низкое количество зрителей, он будет показывать большее количество зрителей, чем у вас на самом деле (из-за нескольких серверов CDN, получающих ваш контент), и если у вас много пользователей, он будет показывать меньшее количество зрителей, чем у вас на самом деле (из-за нескольких зрителей, смотрящих один и тот же кэшированный контент).
  • Чем больше у вас зрителей, тем более полезным будет CDN. Если у вас небольшое количество зрителей, вероятно, каждый запрос все равно будет обращаться к вашему исходному серверу, поэтому CDN не будет таким полезным и даже потенциально вредным для зрителей в некоторых случаях, поскольку это требует дополнительного сетевого перехода. Обратитесь к статистике вашего CDN, чтобы посмотреть, сколько запросов обслуживается из кэша CDN (хиты) по сравнению с вашим исходным сервером (промахи).

Improve this page

See something missing or incorrect? Edit this page and improve the documentation for everyone.

Contributors to this documentation