Гид по технологиям

Установка Centrifugo на Ubuntu 20.04

• 4 min read • DevOps • Обновлено 24 Nov 2025
Установка Centrifugo на Ubuntu 20.04
Установка Centrifugo на Ubuntu 20.04

Кратко: В этой инструкции показано, как быстро установить и запустить Centrifugo — открытый сервер реального времени с поддержкой WebSocket и SockJS на Ubuntu 20.04. Описаны генерация конфигурации, создание systemd-сервиса, запуск и базовые рекомендации по безопасности.

Иллюстрация сервера Centrifugo с логотипом и соединениями

Введение

Centrifugo — бесплатный и открытый сервер обмена сообщениями в реальном времени. Он поддерживает WebSocket и SockJS, может обрабатывать большое количество одновременных подключений и интегрируется с любым языком через HTTP/API. Эта инструкция шаг за шагом покажет установку Centrifugo на сервер под управлением Ubuntu 20.04.

Предусловия

  • Сервер с Ubuntu 20.04.
  • Настроен root-пароль или учётная запись с привилегиями sudo.
  • Базовые навыки работы с терминалом.

Начало работы

Обновите пакеты на сервере перед установкой:

apt-get update -y

После обновления можно переходить к установке Centrifugo.

Установка Centrifugo

Пакет Centrifugo отсутствует в стандартном репозитории Ubuntu, поэтому скачиваем готовый бинарник из релизов на GitHub. В примере используется версия 2.8.4:

wget https://github.com/centrifugal/centrifugo/releases/download/v2.8.4/centrifugo_2.8.4_linux_amd64.tar.gz

Распакуйте архив:

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

Переместите бинарный файл в каталог с исполняемыми файлами:

mv centrifugo /usr/bin

Проверьте версию:

centrifugo version

Ожидаемый вывод примерно такой:

Centrifugo v2.8.4 (Go version: go1.16.3)

Генерация и размещение конфигурации

Сгенерируйте файл конфигурации:

centrifugo genconfig

Команда создаст файл config.json в текущем каталоге. Просмотрите его:

cat config.json

Пример содержимого приведённой конфигурации содержит секреты и автоматически сгенерированные ключи. Обязательно запишите админ-пароль из поля admin_password — он потребуется для доступа в веб-интерфейс.

Создайте постоянный каталог для конфигурации и переместите файл туда:

mkdir /etc/centrifugo
mv config.json /etc/centrifugo/config.json

Важно: храните config.json с ограниченным доступом и резервной копией в безопасном месте.

Создание systemd-сервиса

Создайте файл сервиса:

nano /etc/systemd/system/centrifugo.service

Вставьте следующие строки:

[Unit]
Description=Centrifugo Websocket Server
After=network.target syslog.target
 
[Service]
LimitNOFILE=30000
ExecStartPre=/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json
ExecStart=/usr/bin/centrifugo --config /etc/centrifugo/config.json --admin
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
TimeoutStopSec=5
KillMode=control-group
RestartSec=2
Restart=always
SyslogIdentifier=centrifugo

[Install]
WantedBy=multi-user.target
Alias=centrifugo.service

Перезагрузите демона systemd и запустите сервис:

systemctl daemon-reload
systemctl start centrifugo
systemctl enable centrifugo

Проверьте статус:

systemctl status centrifugo

Ожидаемый фрагмент вывода содержит запись о том, что сервис активен и слушает порты.

Проверьте, что процесс слушает порт 8000:

ss -tunelp | grep 8000

Доступ к веб-интерфейсу

Откройте в браузере URL:

http://your-server-ip:8000

Вас перенаправит на страницу входа Centrifugo. Введите admin_password, который вы получили при генерации config.json, и нажмите кнопку логина.

Страница входа Centrifugo с полем пароля

После успешной аутентификации откроется панель управления и список нод:

Панель управления Centrifugo со списком нод и метриками

Базовые проверки и отладка

  • Убедитесь, что в конфигурации указаны допустимые allowed_origins для браузерных подключений.
  • Проверьте логи через journalctl:
journalctl -u centrifugo -f
  • Если сервис не стартует, проверьте конфигурацию командой:
/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json

Рекомендации по безопасности и настройке производства

Важно:

  • Откройте порт 8000 только для доверенных источников или используйте реверс-прокси (nginx) с TLS.
  • Используйте HTTPS и проксирование websocket через nginx/traefik для шифрования трафика.
  • Смените автоматически сгенерированные секреты в config.json на более контролируемые значения или храните секреты в менеджере секретов.
  • Ограничьте доступ к файлу конфигурации и бинарнику через права файловой системы.

Пример минимальной конфигурации nginx для проксирования и TLS:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 86400;
    }
}

Замените example.com на ваш домен и настройте сертификаты.

Типичные ошибки и способы их устранения

  • Сервис не стартует: проверьте синтаксис config.json и права доступа, запустите checkconfig.
  • Порт 8000 недоступен: проверьте firewall (ufw, iptables) и привилегии прослушивания.
  • Браузер блокирует подключения: добавьте origin вашего сайта в allowed_origins.

Критерии приёмки

  • Centrifugo успешно запускается как systemd-сервис.
  • Порт 8000 слушается локально и доступен через настроенный прокси на HTTPS.
  • Веб-интерфейс доступен, и вы можете войти под admin_password.
  • В конфигурации заданы безопасные значения для секретов или секреты хранятся в менеджере секретов.

Контрольные списки по ролям

Администратор сервера:

  • Обновил пакеты и установил бинарник в /usr/bin.
  • Создал /etc/centrifugo/config.json и настроил права доступа.
  • Настроил systemd-сервис и включил автозапуск.

Разработчик приложения:

  • Тестировал подключение WebSocket/SockJS к серверу Centrifugo.
  • Убедился, что allowed_origins настроены корректно.
  • Протестировал аутентификацию и подписку на каналы.

Специалист по безопасности:

  • Настроил TLS через реверс-прокси.
  • Проверил хранение секретов и доступ к ним.
  • Ограничил доступ к административному интерфейсу.

Мелкая методология развёртывания

  1. Подготовка машины: обновление пакетов и настройка бэкапа.
  2. Установка бинарника и проверка версии.
  3. Генерация конфигурации, смена секретов при необходимости.
  4. Создание systemd-сервиса, запуск и проверка логов.
  5. Настройка прокси и TLS для продакшена.
  6. Мониторинг и резервное копирование конфигурации.

Заключение

Поздравляем — вы установили и запустили Centrifugo на Ubuntu 20.04. Дальше можно интегрировать Centrifugo с вашим приложением, настроить масштабирование и мониторинг. За подробной информацией и продвинутыми сценариями обращайтесь к официальной документации Centrifugo.

Важно: периодически проверяйте обновления Centrifugo и следите за безопасностью секретов в конфигурации.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро