Как установить сервер обмена сообщениями Centrifugo на Ubuntu 20.04
На этой странице
- Предпосылки
- Начало работы
- Установить центрифугу
- Настройка Centrifugo
- Создание файла службы Systemd для Centrifugo
- Доступ к веб-интерфейсу Centrifugo
- Заключение
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.