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 サイトの他の関連記事を参照してください。