Centrifugoは、無料のオープンソースのリアルタイムメッセージングサーバーです。 WebSocketとSockJSをサポートして、アプリケーションクライアントからWebブラウザを介して接続します。高速で、何百万もの同時接続を処理できます。既存のアプリケーションを簡単に統合できます。言語に依存せず、そのAPIはどのプログラミング言語からでも使用できます。
このガイドでは、Ubuntu20.04サーバーにCentrifugoをインストールする方法を説明します。
- Ubuntu20.04を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
開始する前に、システムパッケージを最新バージョンに更新する必要があります。次のコマンドを使用して更新できます:
apt-get update -y
サーバーが更新されたら、次のステップに進むことができます。
デフォルトでは、CentrifugoパッケージはUbuntu20.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 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を書き留めます。 Webインターフェイスにログインするためにこれが必要になります。
次に、次のコマンドを使用してCentrifugoのディレクトリを作成します。
mkdir /etc/centrifugo
次に、config.jsonファイルを/ etc/centrifugoディレクトリにコピーします。
mv config.json /etc/centrifugo/config.json
終了したら、次のステップに進むことができます。
CentrifugoのSystemdサービスファイルを作成する
次に、Centrifugoサービスを管理するための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
次に、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 ubuntu2004 systemd[1]: Starting Centrifugo Websocket Server... May 22 10:01:52 ubuntu2004 systemd[1]: Started Centrifugo Websocket Server. May 22 10:01:52 ubuntu2004 centrifugo[3040]: {"level":"info","version":"2.8.4","runtime":"go1.16.3","pid":3040,"engine":"Memory","gomaxprocs":> May 22 10:01:52 ubuntu2004 centrifugo[3040]: {"level":"info","path":"/etc/centrifugo/config.json","time":"2021-05-22T10:01:52Z","message":"usi> May 22 10:01:52 ubuntu2004 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 <->
CentrifugoWebUIにアクセス
次に、Webブラウザーを開き、URL http:// your-server-ip:8000を使用してCentrifugoWebインターフェースにアクセスします。 。遠心分離機のログインページにリダイレクトされます:
管理者パスワードを入力し、ログインをクリックします ボタン。次のページにCentrifugoダッシュボードが表示されます。
おめでとう!これで、CentrifugoサーバーがUbuntu20.04サーバーに正常にインストールされました。詳細については、Centrifugoのドキュメントをお読みください。