如何在 Ubuntu 20.04 上安装 Centrifugo 消息服务器
在此页
- 先决条件
- 开始
- 安装 Centrifugo
- 配置 Centrifugo
- 为 Centrifugo 创建系统服务文件
- 访问 Centrifugo 网络用户界面
- 结论
Centrifugo 是一个免费、开源的实时消息传递服务器。它支持 WebSocket 和 SockJS 通过 Web 浏览器与应用程序客户端建立连接。它速度很快,能够处理数百万个并发连接。它可以轻松集成您现有的应用程序。它与语言无关,其 API 可用于任何编程语言。
在本指南中,我们将向您展示如何在 Ubuntu 20.04 服务器上安装 Centrifugo。
先决条件
- 一台运行 Ubuntu 20.04 的服务器。
- 在服务器上配置了根密码。
入门
在开始之前,您需要将系统包更新到最新版本。您可以使用以下命令更新它们:
apt-get update -y
服务器更新后,您可以继续下一步。
安装 Centrifugo
默认情况下,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 配置文件。您可以使用以下命令生成它:
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。您将需要它来登录到 Web 界面。
接下来,使用以下命令为 Centrifugo 创建一个目录:
mkdir /etc/centrifugo
接下来,将 config.json 文件复制到 /etc/centrifugo 目录:
mv config.json /etc/centrifugo/config.json
完成后,您可以继续下一步。
为 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 网络用户界面
现在,打开您的网络浏览器并使用 URL http://your-server-ip:8000 访问 Centrifugo 网络界面。您将被重定向到 Centrifugo 登录页面:

提供您的管理员密码,然后单击“登录”按钮。您应该会在下一页看到 Centrifugo 仪表板:

结论
恭喜!您已经在 Ubuntu 20.04 服务器上成功安装了 Centrifugo 服务器。有关更多信息,您应该阅读 Centrifugo 文档。