Golang は高速、効率的、安全なプログラミング言語であり、その優れたパフォーマンス特性により、バックエンド サービスの構築に Golang を使用する開発者が増えています。 Golang コードを作成した後、実稼働環境にどのようにデプロイするのでしょうか?良いオプションの 1 つは、Nginx をリバース プロキシとして使用することです。
この記事では、Nginx を使用して Golang サービスをリバース プロキシし、CentOS 7 システムにデプロイする方法を紹介します。
まず、Golang をインストールする必要があります。 CentOS 7 システムでは、次のコマンドを使用してインストールできます:
yum install -y golang
インストールが完了したら、次のコマンドを使用して成功したかどうかを確認できます:
go version
If the version 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 サーバーを起動します。
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
yum install -y nginx
systemctl start nginx
systemctl enable 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 -t
systemctl restart nginx
8080 で実行されており、Nginx も設定されています。 Golang サービスが正常に実行できるかどうかを確認するために、Nginx の外部 IP アドレスまたはドメイン名にアクセスし、返された時刻情報を確認します。すべてが正常に動作する場合は、Golang アプリケーションのデプロイが成功しました。おめでとうございます。
以上がNginxを使用してGolangサービスをリバースプロキシする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。