- 10 Сен 2020
- 3,411
- 2,777
- 219
Всем привет, в данной теме постараемся разобраться как подключить к своему серверу RAGE:MP альтернативный способ загрузки клиентских ресурсов, а именно -
FastDL, прямая раздача подготовленных файлов силами другого сервера \ сервиса (в данном примере будем использовать Timeweb S3, но вы можете использовать любой, например Amazon).
Первое что вам необходимо понять:
По умолчанию сервер RAGE:MP работает в режиме 2х портов (один порт 22005 у нас для игровых пакетов, а другой 22006 именно для загрузки игроками клиентских ресурсов при подключении).
В таком случае при запуске сервера он также запускает встроенный веб-сервер на 22006 порту и раздает файлы, если интересно можете проверить это перейдя по такой ссылке:
http://ВАШ_IP_СЕРВЕРА:22006/list2/index.html
Тем самым, если у вас большой онлайн + большой поток НОВЫХ игроков (которые, постоянно качают вашу чудо-сборку с миллиардом бмв, мерседесов, гучи, найков и адидасов) то вам необходимо разделять трафик, чтобы ваша система выдержала весь этот поток "важной" информации, а также не страдали уже находящиеся на сервере игроки.
Как это сделать?
Способов много, можно просто взять еще одну VPS, установить туда nginx, прописать параметр fastdl-host в конфиге сервера + подключить CloudFlare и так далее. Все будет работать и так.
WIKI - https://wiki.rage.mp/index.php?title=FastDL
Один из вариантов - универсальное объектное хранилище, совместимое с Amazon S3 API.
Я взял TimeWeb S3 (у него цена в районе 1$ за 10 ГБ данных и безлимитный трафик).
Тема хостинга на форуме - Мощные серверы для геймеров от Timeweb
Тестовый сервер самого RAGE:MP находится на соседнем Cloud VPS.
Далее в панели управления создаем публичный бакет, даем ему произвольное имя и рассматриваем параметры для подключения S3:
- URL
- Регион
- Access key
- Secret access key
- Доступ к публичным файлам (ссылка вида - https://s3.timeweb.com/ВАШЕ_ИМЯ_БАКЕТА/имя_файла)
Далее если вы используете Linux (я использую Debian) устанавливаем утилиту - awscli, введя команду:
Bash:
apt install awscli
После установки настроим конфигурацию с нашими параметрами для подключения, введя команду:
Bash:
aws configure
После этого включаем на сервере RAGE:MP параметр в конфигурации:
JSON:
"create-fastdl-snapshot": true
Теперь при каждом запуске сервера, он будет генерировать специальные клиентские файлы (папка - fastdl_snapshot) для загрузки на наш S3.
Ждем полной прогрузки сервера (если у вас много файлов) и вводим команду для начала загрузки:
Bash:
aws --endpoint-url https://s3.timeweb.com s3 sync ПАПКА_СЕРВЕРА/fastdl_snapshot s3://ИМЯ_БАКЕТА
После окончания загрузки видим наши файлы в панели управления.
Важно! На ветке prerelease FastDL не работает или работает странно!
Вам необходимо установить билд сервера RAGE:MP из ветки - gamev2_LdQuTaL26ySDCvxvVnD8czXS7YzuwmX3
Ссылка для скачивания - https://cdn.rage.mp/updater/gamev2_LdQuTaL26ySDCvxvVnD8czXS7YzuwmX3/server-files/linux_x64.tar.gz
Не могу сказать на счет работы FastDL на Windows (не тестил), если кто-то будет пробовать отвечайте в тему.
После этого можно сразу выставлять в конфиге сервера RAGE:MP такой параметр (у вас если не подключали домен будет обычная ссылка - http://s3.timeweb.com/ИМЯ_БАКЕТА):
JSON:
"fastdl-host": "http://cdn.ragemp.su"
Итоги
Можно запускать сервер и проверять новое скачивание клиентских ресурсов с нашего S3.
Желательно синхронизировать файлы командой на S3 после каждого рестарта вашего сервера RAGE:MP.
Ставьте реакции если нужны дополнения на тему автоматизации с помощью скрипта или подключение других сервисов.
Последнее редактирование: