Как создать связку серверов
На данный момент, иметь связку серверов очень даже и актуально. Именно с помощью неё вы можете не только распределять потоки игроков, но и защитить свои сервера от ботов и лишней нагрузки.
Что нам нужно знать перед началом работы?
Перед началом, Вам необходимо ознакомиться с таким ядром, как Velocity. Именно с помощью него мы сделаем быструю, корректную и простую логику, которая поможет Вам связать несколько серверов, как одно целое.
Необходимая информация:
Для работы с ядром нам потребуется минимум Java 11 (Версия 1.13)
В данном блоге, мы будем использовать актуальную версию 1.16.5
Нам потребуется минимум 2 сервера.
Скачать ядро: https://papermc.io/downloads/all (В списке слева находите Velocity. Для 1.16.5 потребуется скачать версию 3.1.1, #102)
Начало работы
После установки ядра загрузите его во вкладку "Файлы" и переименуйте в server.jar. После чего, зайдите во вкладку "Запуск", и выберите Java 16.
Вы увидите несколько файлов, но мы будем работать только с одним (как показано на прикрепленном скриншоте).
Первые параметры файла velocity.toml
В первых нескольких строках файла, есть несколько важных настроек.
- Bind: Это настройка порта, на котором будет запущен Ваш прокси-сервер. Порт нужно вставить тот, который находится у вас в IP-адресе сервера. Например, ваш IP сервера d1.aurorix.net:12345, а в параметре Bind он может быть написан, как 0.0.0.0:67890. Вам нужно изменить только 67890 на 12345 (он должен выглядеть после этого 0.0.0.0:12345). Если у вас другие порты, Вы меняете их аналогично примеру.
- Motd: сообщение, которое будет отображаться в списке серверов. Вы можете его изменить на своё.
- Show-max-players: какое максимальное количество игроков будет показывать сервер.
- Online-mode: лицензия на сервере. Лучше использовать параметр false, дабы игроки могли зайти с "пиратских" лаунчеров.
Связка серверов с помощью секретного ключа
Прокрутив список ниже, вы можете найти несколько важных параметров, которые необходимо настроить. ВСЁ, ЧТО НЕ УКАЗАНО В СПИCКЕ, НАСТРАИВАТЬ НЕ ОБЯЗАТЕЛЬНО!
- Player-info-forwarding-mode: если Вы создали сервер на версиях 1.13+, то используйте режим="modern". (Если Вы делаете всё, как я - используйте его).
Если же вы создали сервер на версиях 1.12 - вам рекомендуется использовать режим = "bungeeguard". Для этого потребуется установить плагин BungeeGuard на ваш 2 сервер.
После установить в файле spigot.yml строку bungeecord=true
И в config.yml плагина BungeeGuard указать ключ из файла forwarding-secret
Дальше можете следовать инструкции "Перенаправление игроков на сервера". - Forwarding-secret: это секретный ключ для связки ваших серверов. Если он не написан в velocity.toml, значит, он будет в файле forwarding-secret. Не рекомендую его показывать сторонним лицам, иначе ваши сервера могут быть отключены от связки. Чтобы его использовать, зайдите в панель вашего второго сервера и установите ядро Paper на версии 1.16.5 (Java 16). После чего, найдите файл paper.yml, и настройте, как на скриншотах ниже.
Перенаправление игроков на сервера
Итак, это последняя настройка для нашей связки серверов. Здесь нет ничего сложного, как и в примерах до этого.
- [servers]: здесь вам предстоит написать все Ваши названия и айпи серверов, чтобы сервер знал, куда нужно направить игрока. Например, у вас есть параметр lobby. Вместо примера IP-адреса вы просто вводите айпи вашего сервера lobby. Так делаете с factions и minigames. Если у вас нет так много серверов, вы удаляете ненужное название и IP, или меняете его на то, которое хотите. Если у вас больше серверов, чем написано в конфиге, просто копируете пример и пишите его снизу под всеми, меняя на нужные параметры.
- [try]: настройка сервера, на которое будет изначально переадресован игрок. Вы можете заменить lobby на любое другое название из списка [servers].
- [forced-hosts]: это не совсем важная настройка и вы можете просто удалить её. Если не хотите, то измените первое название сервера на то, которое есть у вас в списке [servers]. Так же, не забудьте поставить это название в квадратных скобках за ссылкой.
ВАЖНО!!! ВЫ ДОЛЖНЫ СДЕЛАТЬ ВСЕ СЕРВЕРА ПО ИНСТРУКЦИИ, как Forwarding-secret!!!
Готово! В случае, если у вас все равно остались какие-то вопросы, то вы можете создать тикет в нашем Discord-сервере и вам обязательно помогут.