Поиск по сайту:

Как установить сервер обмена сообщениями Centrifugo на Ubuntu 20.04


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить центрифугу
  4. Настройка Centrifugo
  5. Создание файла службы Systemd для Centrifugo
  6. Доступ к веб-интерфейсу Centrifugo
  7. Заключение

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

В этом руководстве мы покажем вам, как установить Centrifugo на сервер Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • На сервере настроен пароль root.

Начиная

Перед запуском вам необходимо обновить системные пакеты до последней версии. Вы можете обновить их с помощью следующей команды:

apt-get update -y

Как только ваш сервер будет обновлен, вы можете перейти к следующему шагу.

Установить Центрифуго

По умолчанию пакет Centrifugo не включен в стандартный репозиторий Ubuntu 20.04. Поэтому вам нужно будет загрузить его двоичный файл из репозитория Git.

Вы можете загрузить последнюю версию Centrifugo с помощью следующей команды:

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

Затем переместите бинарный файл Centrifugo в каталог /usr/bin:

mv centrifugo /usr/bin

Теперь проверьте версию Centrifugo с помощью следующей команды:

centrifugo version

Вы должны увидеть следующий вывод:

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

Настроить центрифугу

Далее вам нужно будет сгенерировать файл конфигурации Centrifugo. Вы можете сгенерировать его с помощью следующей команды:

centrifugo genconfig

Эта команда создаст файл config.json в вашем текущем рабочем каталоге. Вы можете проверить это с помощью следующей команды:

cat config.json

Вы должны получить следующий результат:

{
  "v3_use_offset": true,
  "token_hmac_secret_key": "03599f21-9737-40bc-821e-afe34c1849ec",
  "admin_password": "51d88406-da91-4aab-979a-c2114b51a14c",
  "admin_secret": "fa12779d-ba9a-48b9-9cff-14bf96ee79b7",
  "api_key": "e667e485-1b46-4a5e-991e-a69729b57d07",
  "allowed_origins": []
}

Примечание. Запишите пароль admin_password из приведенного выше вывода. Это необходимо для входа в веб-интерфейс.

Затем создайте каталог для Centrifugo с помощью следующей команды:

mkdir /etc/centrifugo

Затем скопируйте файл config.json в каталог /etc/centrifugo:

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

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

Создайте файл службы Systemd для Centrifugo

Далее вам нужно будет создать файл службы systemd для управления службой Centrifugo. Вы можете создать его с помощью следующей команды:

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

Затем запустите службу Centrifugo и включите ее запуск при перезагрузке системы:

systemctl start centrifugo
systemctl enable centrifugo

Вы можете проверить статус службы Centrifugo с помощью следующей команды:

systemctl status centrifugo

Вы должны увидеть следующий вывод:

? centrifugo.service - Centrifugo Websocket Server
     Loaded: loaded (/etc/systemd/system/centrifugo.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-22 10:01:52 UTC; 4s ago
    Process: 3024 ExecStartPre=/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json (code=exited, status=0/SUCCESS)
   Main PID: 3040 (centrifugo)
      Tasks: 6 (limit: 2353)
     Memory: 7.8M
     CGroup: /system.slice/centrifugo.service
             ??3040 /usr/bin/centrifugo --config /etc/centrifugo/config.json --admin

May 22 10:01:51 ubunt4 systemd[1]: Starting Centrifugo Websocket Server...
May 22 10:01:52 ubunt4 systemd[1]: Started Centrifugo Websocket Server.
May 22 10:01:52 ubunt4 centrifugo[3040]: {"level":"info","version":"2.8.4","runtime":"go1.16.3","pid":3040,"engine":"Memory","gomaxprocs":>
May 22 10:01:52 ubunt4 centrifugo[3040]: {"level":"info","path":"/etc/centrifugo/config.json","time":"2021-05-22T10:01:52Z","message":"usi>
May 22 10:01:52 ubunt4 centrifugo[3040]: {"level":"info","time":"2021-05-22T10:01:52Z","message":"serving websocket, SockJS, API, admin en>

На данный момент служба Centrifugo запущена и прослушивает порт 8000. Вы можете проверить это с помощью следующей команды:

ss -tunelp | grep 8000

Вы должны получить следующий результат:

tcp   LISTEN 0      4096                                  *:8000              *:*       users:(("centrifugo",pid=3040,fd=3)) ino:26878 sk:c v6only:0 <->        

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

Теперь откройте веб-браузер и войдите в веб-интерфейс Centrifugo, используя URL-адрес http://your-server-ip:8000. Вы будете перенаправлены на страницу входа в Centrifugo:

Введите пароль администратора и нажмите кнопку ВХОД. Вы должны увидеть панель управления Centrifugo на следующей странице:

Заключение

Поздравляем! вы успешно установили сервер Centrifugo на сервер Ubuntu 20.04. Для получения дополнительной информации вы должны прочитать документацию Centrifugo.