top of page

Малий VPS як флот ігрових серверів

Фото автора: Marcel Dütscher
Marcel Dütscher
5 лип.
Читати 1 хв

Усі наші онлайн-світи — портал, офіційні світи, світи, створені гравцями — працюють на одному орендованому Linux-сервері (VPS). Ніякого дата-центру, ніякого хмарного рахунку на п’ять цифр. У цій статті я покажу, як налаштований сервер і чого ми навчилися дорогою.


Спершу зміцнення. Перш ніж гру пустили на сервер, на першому місці була базова безпека: брандмауер (ufw), що відкриває лише потрібні порти, fail2ban проти автоматизованих спроб входу та SSH лише з ключами. Caddy працює як зворотний проксі у своєму Docker-варіанті — він сам отримує TLS-сертифікати й спрямовує запити до потрібних контейнерів.


Кожен світ має власний контейнер. Сама гра працює як Docker-образ, а кожен світ отримує власний контейнер із жорсткими лімітами: 768 МБ оперативної пам’яті й 2 ядра процесора на світ, щонайбільше десять активних світів одночасно. Так жоден окремий світ ніколи не покладе весь сервер.


Моніторинг, що телефонує нам. Netdata стежить за сервером понад 140 сигналами тривоги — від «диск заповнюється» до «портал не відповідає». Якщо щось спрацьовує, на телефон надходить пуш-сповіщення (через ntfy). Так ми дізнаємося про проблеми раніше за гравців.


Найнесподіваніша знахідка: коли ми заміряли в стані спокою, приблизно половина використаної пам’яті йшла зовсім не на гру — вона йшла на Docker і сам моніторинг. Інфраструктура, що несе гру, у спокої важча за саму гру. Гарне нагадування, що треба вимірювати, а не вгадувати.


Вердикт після кількох місяців роботи: невеликий, як слід захищений сервер чудово тягне інді-мультиплеєр — якщо ставити ліміти й стежити за ним.

Останні пости

Дивитися всі
Чому нова версія називається 2026.7.19, а не 0.9.2 🗓️

Хто оновлюється сьогодні, перестрибує з версії 0.9.1 на 2026.7.19. Це схоже на помилку друку, але це навмисне рішення: ми змінили схему версіонування, від «семантичних» версій до версій за датою (рік.

 
 

Коментарі


Коментування цього посту більше не доступне. Зверніться до власника сайту, щоб дізнатися більше.
bottom of page