ホームページ  >  記事  >  バックエンド開発  >  nginx はどのようにリクエストを Golang バックエンドサーバーに転送しますか?

nginx はどのようにリクエストを Golang バックエンドサーバーに転送しますか?

PHPz
PHPzオリジナル
2023-04-05 13:47:53913ブラウズ

Nginx は、強力な Web サーバーおよびリバース プロキシ サーバーです。HTTP、HTTPS、SMTP、POP3、および IMAP プロトコルに使用でき、高性能で安定性の高い Web サーバーです。 Golang は Google が開発したプログラミング言語で、効率が高く、簡単であるという特徴があるため、フロントエンドとバックエンドが分離したアプリケーションでバックエンドプログラムを記述する場合によく使われます。アプリケーションのパフォーマンスとスケーラビリティを向上させるには、通常、Nginx をリバース プロキシとして使用して、リクエストを Golang バックエンド サーバーに転送する必要があります。

Nginx をリバース プロキシ サーバーとして構成する前に、Golang アプリケーションがサーバーにインストールされ、実行されていることを確認する必要があります。次のコマンドで Golang がインストールされているかどうかを確認できます。

go version

バージョン番号が返された場合、Golang は正常にインストールされています。次に、以下に示すように、Golang アプリケーションで HTTP サービスを有効にする必要があります。

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, Golang!")
    })

    http.ListenAndServe(":8080", nil)
}

このコードでは、リクエストを受信したときに「Hello, Golang!」を返す HTTP 処理関数を定義します。 」。次に、http.ListenAndServe() 関数を使用して、ポート 8080 に HTTP サービスを登録します。

次に、リクエストを Golang バックエンド サーバーに転送するためのリバース プロキシ サーバーとして Nginx を構成します。次の内容を Nginx 構成ファイルに追加できます。

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass       http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

このコードでは、サーバー ブロックを定義し、listen ディレクティブを使用して Nginx がリッスンするポートを設定します。# を使用します。 # #server_name ディレクティブはサーバー名を設定します。次に、location ディレクティブを使用してリクエスト パスを定義し、リクエストを http://127.0.0.1:8080 アドレスに転送します。同時に、proxy_set_header ディレクティブを使用して HTTP ヘッダー情報を設定し、Golang アプリケーションがクライアント IP アドレスを正しく取得できるようにします。

ここで、次のコマンドを使用して、Nginx がリクエストを Golang アプリケーションに正常に転送したかどうかをテストできます:

curl http://localhost/
「Hello, Golang!」が返された場合、Nginx は成功しています。リクエストを Golang バックエンド サーバーに転送します。

要約すると、Nginx をリバース プロキシ サーバーとして構成する前に、Golang アプリケーションがサーバーにインストールされ、実行されていることを確認する必要があります。次に、Golang の HTTP サービスを有効にし、リクエストを Golang バックエンド サーバーに転送するリバース プロキシ サーバーとして Nginx を構成します。もちろん、特定のアプリケーションでは、実際の状況に基づいた詳細な設定が必要です。

以上がnginx はどのようにリクエストを Golang バックエンドサーバーに転送しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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