FastDL
Игроки CS 1.6, CS:S, CS 2 и других игр на GoldSrc и Source при входе на сервер скачивают карты, модели и звуки, которых у них нет. Сам игровой сервер отдаёт их очень медленно. FastDL раздаёт эти файлы по HTTP прямо с ноды, и игра скачивает их за секунды (sv_downloadurl).
Раздачу запускает агент на каждой ноде, а настройки задаются в панели: Модули → FastDL → Настройки. Модуль включён по умолчанию.
Как это работает
- Каждая нода слушает HTTP-порт FastDL (по умолчанию 27080) и отдаёт файлы серверов по адресу
http://<IP ноды>:27080/fastdl/<ID сервера>/<путь>. - Каждый новый контейнер получает переменную
FASTDL_URL— адрес файлов своего сервера. - Образ игры сам решает, что с ней делать. Образ CS 1.6 из стартового набора прописывает
sv_downloadurlиsv_allowdownload 1. Если вserver.cfgуже указан ваш собственный адрес (например, CDN), он не трогается. Образы, которым FastDL не нужен, переменную просто игнорируют.
Уже созданные серверы получают адрес только после пересоздания контейнера. Подойдёт любое действие, которое пересоздаёт контейнер, например Применить заново у тарифа или изменение параметров сервера.
Что нужно сделать
Откройте порт FastDL наружу в файрволе каждой ноды:
ufw allow 27080/tcp
Больше ничего не нужно: с настройками по умолчанию раздача включается на всех нодах сама.
Настройки
Раздача — общие настройки для всех нод:
- Порт — по умолчанию 27080.
- Кэширование у клиентов, секунд — заголовок
Cache-Control: max-age, от 0 до 604800, по умолчанию 300. - Расширения файлов — что раздаётся. По умолчанию это карты, модели, звуки, текстуры и сжатые
.bz2:.bsp .nav .ain .wad .res .mdl .spr .vtx .vvd .phy .wav .mp3 .ogg .tga .bmp .vtf .vmt .pcf .bz2. Вернуть стандартный набор восстанавливает этот список.
Конфиги, плагины, скрипты и ключи (.cfg, .ini, .txt, .json, .amxx, .smx, .so, .dll, .sh, .db, .key и т. п.) не раздаются никогда, даже если добавить их в список: в них бывают пароли RCON и код. Списка каталогов и скрытых папок раздача тоже не показывает.
Ноды — состояние раздачи на каждой ноде и исключения для неё:
- выключить FastDL на этой ноде;
- свой Порт;
- Публичный адрес — если нода за NAT, обратным прокси или CDN, укажите адрес, по которому до неё дойдут игроки, например
https://dl.example.com. Пусто —http://<IP ноды>:<порт>.
Ноды получают новые настройки в течение нескольких секунд после сохранения.
Состояние нод
- Раздаёт — всё работает, рядом показан публичный адрес.
- Выключен — FastDL на ноде выключен исключением или модуль выключен.
- Ошибка — агент не смог запустить раздачу, например порт занят другим процессом. Текст ошибки показан в строке ноды.
- Агент устарел — обновите агент на ноде, см. Обновления.
- Нода офлайн, Ожидает — нода не на связи или ещё не опрошена.
Выключить FastDL
Модули → FastDL → Выключить — ноды перестанут раздавать файлы, и игроки будут качать карты медленно, через сам игровой сервер. Настройки сохраняются, модуль можно включить обратно в любой момент.
Если игроки качают медленно
- Проверьте состояние ноды на странице FastDL: она должна раздавать.
- Откройте в браузере
http://<IP ноды>:27080/fastdl/<ID сервера>/cstrike/maps/<карта>.bsp. Если не открывается, значит, порт закрыт в файрволе ноды или у провайдера. - Сервер создан до включения FastDL — пересоздайте контейнер (см. выше).
- Нужный тип файлов не входит в Расширения файлов — добавьте его.