ホームページ >バックエンド開発 >Golang >Go で HTTP を HTTPS に効率的にリダイレクトするにはどうすればよいですか?

Go で HTTP を HTTPS に効率的にリダイレクトするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-30 17:38:11793ブラウズ

How to Efficiently Redirect HTTP to HTTPS in Go?

Go で HTTP を HTTPS にリダイレクトする

この記事では、Go アプリケーションで HTTP トラフィックを HTTPS にリダイレクトする問題について説明します。 TLS を正常に設定したとしても、このリダイレクトを効率的に実装する方法を理解することが重要です。

リダイレクト ハンドラーの確立

リダイレクトを開始するには、リダイレクトを処理するハンドラーを作成します。 HTTPSに。以下に例を示します。

func redirectToTls(w http.ResponseWriter, r *http.Request) {
    http.Redirect(w, r, "https://IPAddr:443"+r.RequestURI, http.StatusMovedPermanently)
}

このハンドラーは、IP アドレスとポート 443 を使用して、HTTP リクエストを対応する HTTPS 対応物にリダイレクトします。

HTTP トラフィックのリダイレクト

リダイレクト ハンドラーが確立されたら、受信したメッセージをリダイレクトする必要があります。そこへの HTTP トラフィック。これは、ポート 80 でリッスンし、リダイレクト ハンドラーを提供する goroutine を起動することで実現できます。

go func() {
    if err := http.ListenAndServe(":80", http.HandlerFunc(redirectToTls)); err != nil {
        log.Fatalf("ListenAndServe error: %v", err)
    }
}()

この goroutine は、継続的にポート 80 でリッスンし、受信した HTTP リクエストを HTTPS にリダイレクトし、すべてのトラフィックを効果的に保証します。暗号化されています。

以上がGo で HTTP を HTTPS に効率的にリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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