ホームページ >バックエンド開発 >Golang >スタンドアロンの golang デプロイメント

スタンドアロンの golang デプロイメント

王林
王林オリジナル
2023-05-05 21:41:10600ブラウズ

go 言語の徐々に人気が高まり、その適用範囲が継続的に拡大するにつれて、プロジェクトの開発言語として golang を使用する開発者がますます増えています。 golang アプリケーションをデプロイする場合は 2 つの方法があります: 1 つは Docker、Kubernetes などのコンテナ化テクノロジを使用する方法、もう 1 つはスタンドアロン デプロイを使用する方法です。この記事では、スタンドアロンの golang のデプロイに関連する手順と注意事項を詳しく紹介します。

  1. マシン環境の確認

作業を始める前に、マシン環境が要件を満たしているか確認する必要があります。まず、マシンに 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"

対応するライブラリ ファイルが見つからない場合は、手動でダウンロードしてインストールする必要があります。

  1. コードの取得

golang アプリケーションをデプロイするには、デプロイに必要なコードを取得する必要があります。その中で、以下に示すように、git clone コマンドを通じてコードを取得できます:

git clone https://github.com/username/project.git

このコマンドを実行すると、現在のディレクトリに project という名前のディレクトリが生成されます。コード。

  1. プログラムのコンパイル

コードを取得したら、実行可能なバイナリ プログラムをコンパイルする必要があります。このステップは通常、プログラムが監視するポート番号、ログを出力するパスなど、プログラムの特定の環境とパラメータに従って設定する必要があります。この記事では、簡単な hello world プログラムを例として説明します。まず、コードディレクトリで以下のコマンドを実行すると、バイナリファイル

go build -o app main.go

が生成されます このうち、app は出力バイナリプログラムの名前、main.go は golang のエントリポイントです応用。このコマンドを実行すると、app という名前のバイナリ ファイルがコード ディレクトリに生成されます。次に、次のコマンドを使用してバイナリ プログラムを開始します:

./app

この時点で、curl コマンドを使用してプログラムが正常に開始されたかどうかを検出できます:

curl http://localhost:8080

If "Hello, World!」というメッセージが表示され、プログラムが正常に開始されたことが示されます。

  1. プロセス管理

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)」の場合、サービスは正常に開始されていることを意味します。

  1. セキュリティ強化

スタンドアロン golang アプリケーションのデプロイメント プロセスでは、セキュリティ強化が特に重要です。セキュリティ強化策には次のものがあります。

  1. ファイアウォールの壁貫通ポリシーを有効にする: iptables コマンドを使用して、マシンの外部接続の制限と保護を有効にできます。
  2. sudo コマンドの使用を制限する: 管理者以外のユーザーが sudo コマンドを通じてシステム権限を取得できないようにします。
  3. パブリック ネットワーク ssh を制限する: 次のエントリを /etc/ssh/sshd_config に追加することで、パブリック ネットワーク アクセスを ssh に制限できます:

    Port 22
    PermitRootLogin no
    AllowUsers user1 user2
  4. Use waf for protection http request: waf を使用すると、http リクエストを均一にフィルタリングして検出できるため、システムクラッシュやデータ漏洩を引き起こす可能性のある一部の攻撃を回避できます。
  5. まとめ

スタンドアロン golang のデプロイに関連するプロセスと注意事項をまとめると、スタンドアロン golang のデプロイの具体的な手順は、マシン環境の確認、取得、コードの作成、プログラムのコンパイル、プロセス管理、セキュリティ強化などを行います。初心者にとって、上記のプロセスと注意事項は理解して学習する価値があり、将来の golang アプリケーションのデプロイメントに役立つ可能性があります。

以上がスタンドアロンの golang デプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。