ホームページ > バックエンド開発 > Golang > Nginxを使用してGolangサービスをリバースプロキシする方法

Nginxを使用してGolangサービスをリバースプロキシする方法

PHPz
リリース: 2023-04-25 16:34:09
オリジナル
1141 人が閲覧しました

Golang は高速、効率的、安全なプログラミング言語であり、その優れたパフォーマンス特性により、バックエンド サービスの構築に Golang を使用する開発者が増えています。 Golang コードを作成した後、実稼働環境にどのようにデプロイするのでしょうか?良いオプションの 1 つは、Nginx をリバース プロキシとして使用することです。

この記事では、Nginx を使用して Golang サービスをリバース プロキシし、CentOS 7 システムにデプロイする方法を紹介します。

1. Golang のインストール

まず、Golang をインストールする必要があります。 CentOS 7 システムでは、次のコマンドを使用してインストールできます:

yum install -y golang
ログイン後にコピー

インストールが完了したら、次のコマンドを使用して成功したかどうかを確認できます:

go version
ログイン後にコピー

If the version Golang の数が出力されればインストール成功です。

2. Golang サービスを作成する

次に、簡単な Golang サービスを作成します。この例では、現在時刻を返すことができる HTTP サーバーを作成します。コードは次のとおりです:

package main

import (
    "fmt"
    "net/http"
    "time"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Current time: %s", time.Now().String())
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
ログイン後にコピー

コードでは、最初に handler 関数を定義します。リクエストが来ると、この関数は現在時刻を返します。次に、http.HandleFunc メソッドを使用して、handler 関数を / パスに登録します。最後に、http.ListenAndServe メソッドを使用して、ポート 8080 で HTTP サーバーを起動します。

3. Golang サービスをコンパイルする

go build コマンドを使用して、Golang サービスをバイナリ実行可能ファイルにコンパイルします。 Nginx が実行可能ファイルにアクセスするには、それをディレクトリに配置し、そのディレクトリを PATH 環境変数に追加する必要があります。実行可能ファイルを /root/go/bin ディレクトリに配置すると仮定すると、次のコマンドを実行してコンパイルし、ディレクトリを PATH に追加できます:

cd /root/go/src/hello
go build -o /root/go/bin/hello
echo "export PATH=$PATH:/root/go/bin" >> ~/.bashrc
source ~/.bashrc
ログイン後にコピー

4. Nginx# をインストールします

##リバース プロキシには Nginx を使用するため、最初に Nginx をインストールする必要があります。 CentOS 7 システムでは、次のコマンドを使用してインストールできます:

yum install -y nginx
ログイン後にコピー
インストールが完了したら、次のコマンドを実行して Nginx を起動できます:

systemctl start nginx
ログイン後にコピー
起動時に自動的に開始するように設定します:

systemctl enable nginx
ログイン後にコピー
5. Nginx リバース プロキシの構成

Nginx がリクエストを Golang サービスに正しく転送できるようにするには、Nginx のリバース プロキシを構成する必要があります。次の内容を含む

hello.conf という名前のファイルを /etc/nginx/conf.d ディレクトリに作成します。

server {
    listen 80;
    server_name example.com;
 
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }
}
ログイン後にコピー
構成では、

を監視しました。 80 にポートし、リクエストを 127.0.0.1:8080 の Golang サービスに転送します。 proxy_set_header ディレクティブは、Golang サービスが HTTP リクエスト情報を正しく解析できるように、HTTP リクエスト ヘッダーの Host フィールドを設定するために使用されることに注意してください。

設定ファイルを書き込んだ後、次のコマンドを実行して Nginx の設定が正しいかどうかを確認します。

nginx -t
ログイン後にコピー
プロンプトの設定が正しい場合は、次のコマンドを実行して Nginx を再起動します。

systemctl restart nginx
ログイン後にコピー
6. Golang サービスのテスト

現在、Golang サービスはポート

8080 で実行されており、Nginx も設定されています。 Golang サービスが正常に実行できるかどうかを確認するために、Nginx の外部 IP アドレスまたはドメイン名にアクセスし、返された時刻情報を確認します。すべてが正常に動作する場合は、Golang アプリケーションのデプロイが成功しました。おめでとうございます。

この記事では、Nginx を使用して Golang サービスをリバース プロキシし、CentOS 7 システムにデプロイする方法を紹介します。もちろん、他のシステムにデプロイする必要がある場合は、この記事のアイデアに従うこともできます。

以上がNginxを使用してGolangサービスをリバースプロキシする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート