go 言語の徐々に人気が高まり、その適用範囲が継続的に拡大するにつれて、プロジェクトの開発言語として golang を使用する開発者がますます増えています。 golang アプリケーションをデプロイする場合は 2 つの方法があります: 1 つは Docker、Kubernetes などのコンテナ化テクノロジを使用する方法、もう 1 つはスタンドアロン デプロイを使用する方法です。この記事では、スタンドアロンの golang のデプロイに関連する手順と注意事項を詳しく紹介します。
作業を始める前に、マシン環境が要件を満たしているか確認する必要があります。まず、マシンに golang がインストールされているかどうかを確認する必要があります。 Linux システムでは、次のコマンドを使用して golang がインストールされているかどうかを確認できます:
go version
次の内容が出力された場合、golang が正常にインストールされたことを意味します:
go version go1.16.5 linux/amd64
次に、デプロイメントプロセス中に git からコードを取得する必要があるため、マシンに git がインストールされているかどうかを確認する必要があります。 Linux システムでは、次のコマンドを使用して git がインストールされているかどうかを確認できます:
git version
次の内容が出力されたら、git は正常にインストールされています:
git version 2.17.1
最後に、マシンの実行環境が整っているかどうかを確認します。 golang アプリケーションの場合、その実行環境には、オペレーティング システムに必要な依存関係とライブラリ ファイルが含まれている必要があります。マシン環境を確認する前に、まず、sphinx や elasticsearch などのサードパーティ ライブラリの使用に適応するために、libssl、libcrypto などの必要なライブラリ ファイルを理解する必要があります。次のコマンドを使用して、ライブラリのインストール パスを見つけることができます:
ldconfig -p | grep "library-name"
対応するライブラリ ファイルが見つからない場合は、手動でダウンロードしてインストールする必要があります。
golang アプリケーションをデプロイするには、デプロイに必要なコードを取得する必要があります。その中で、以下に示すように、git clone コマンドを通じてコードを取得できます:
git clone https://github.com/username/project.git
このコマンドを実行すると、現在のディレクトリに project という名前のディレクトリが生成されます。コード。
コードを取得したら、実行可能なバイナリ プログラムをコンパイルする必要があります。このステップは通常、プログラムが監視するポート番号、ログを出力するパスなど、プログラムの特定の環境とパラメータに従って設定する必要があります。この記事では、簡単な hello world プログラムを例として説明します。まず、コードディレクトリで以下のコマンドを実行すると、バイナリファイル
go build -o app main.go
が生成されます このうち、app は出力バイナリプログラムの名前、main.go は golang のエントリポイントです応用。このコマンドを実行すると、app という名前のバイナリ ファイルがコード ディレクトリに生成されます。次に、次のコマンドを使用してバイナリ プログラムを開始します:
./app
この時点で、curl コマンドを使用してプログラムが正常に開始されたかどうかを検出できます:
curl http://localhost:8080
If "Hello, World!」というメッセージが表示され、プログラムが正常に開始されたことが示されます。
Golang アプリケーションをデプロイするプロセスで、アプリケーションの開始、停止、再起動の管理を容易にするために、プロセス管理を使用する必要があります。ツール。現在、最もよく使われているプロセス管理ツールはsystemdですが、ここではsystemdを例にプロセス管理の方法を説明します。
まず、/etc/systemd/system に app.service という名前の新しいファイルを作成し、次の内容をファイルに追加します。
[Unit] Description=description-of-app After=network.target [Service] Type=simple Restart=always StartLimitInterval=0 RestartSec=2 User=username Group=username ExecStart=/path/to/application WorkingDirectory=/path/to/application StandardOutput=syslog StandardError=syslog SyslogIdentifier=app Environment=ENV=prod [Install] WantedBy=multi-user.target
上記の構成ファイルの説明を変更します。 app、username、path/to/application、ENV はそれぞれ、アプリケーションの説明、サービスが実行されているユーザー名、アプリケーションのバイナリ実行可能ファイルへのパス、および実行環境 (テスト環境または運用環境) を表します。 。
構成ファイルの作成が完了したら、次のコマンドを実行して systemd サービスをロードして開始します。
sudo systemctl daemon-reload sudo systemctl start app.service
上記のコマンドを実行した後、次のコマンドを使用してサービスのステータスを確認できます。 :
sudo systemctl status app.service
ステータスが「active (running)」の場合、サービスは正常に開始されていることを意味します。
スタンドアロン golang アプリケーションのデプロイメント プロセスでは、セキュリティ強化が特に重要です。セキュリティ強化策には次のものがあります。
パブリック ネットワーク ssh を制限する: 次のエントリを /etc/ssh/sshd_config に追加することで、パブリック ネットワーク アクセスを ssh に制限できます:
Port 22 PermitRootLogin no AllowUsers user1 user2
スタンドアロン golang のデプロイに関連するプロセスと注意事項をまとめると、スタンドアロン golang のデプロイの具体的な手順は、マシン環境の確認、取得、コードの作成、プログラムのコンパイル、プロセス管理、セキュリティ強化などを行います。初心者にとって、上記のプロセスと注意事項は理解して学習する価値があり、将来の golang アプリケーションのデプロイメントに役立つ可能性があります。
以上がスタンドアロンの golang デプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。