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 アドレスを正しく取得できるようにします。
curl http://localhost/
以上がnginx はどのようにリクエストを Golang バックエンドサーバーに転送しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。