Я пытаюсь настроить резервные исходные серверы для CDN, которые будут доставлять видеофайлы по запросу. Текущая установка такова, что у меня есть два «медиа-сервера» с большой емкостью хранения, на которых работает nginx. Перед этими двумя серверами находится еще один сервер nginx, который настроен как обратный прокси-сервер, разделяя запросы на каждый из них.
Дубликаты копий каждого видео хранятся на каждом медиа-сервере. Они копируются на каждый медиа-сервер, но могут происходить в несколько разное время. Из-за этого nginx будет возвращать немного разные заголовки LastModified для запросов на видео, в зависимости от того, какой сервер nginx его обслуживал.
Проблема в том, что CDN, который кэширует данные, иногда отправляет запросы IMS (если изменено с) на исходный сервер и будет использовать эту информацию, чтобы определить, нужно ли обновлять видео в своем кеше. Сеть CDN отправляет для видео запросы диапазона байтов, которые можно легко разделить между двумя серверами. Если запросы диапазона байтов продолжают получать разные последние измененные заголовки, все идет наперекосяк.
Это решаемая проблема? Нужно ли мне использовать какой-либо другой механизм для «синхронизации» данных между двумя серверами? Может быть, я могу использовать rsync для копирования данных с одного сервера хранения на другой и передать параметр, который сохраняет все время создания / изменения?
Вы просто копируете файлы? Любая программа, которую вы используете для копирования, будет иметь способ также копировать метки времени, так что они будут идентичны для обеих копий.
Например, используя GNU cp
программа в Linux:
cp --preserve=timestamps source destination
Конечно, поскольку это поведение по умолчанию ... проверьте документацию, что бы вы ни использовали для копирования файлов.