NginxはHTTPをHTTPSにリダイレクトします

Nginx Redirect Http Https



エンジンxと発音されるNginxは、無料のオープンソースLinuxベースの高性能Webであり、インターネット上の最大のWebサイトトラフィックの負荷を管理および処理するリバースプロキシサーバーです。 Nginxは強力なリダイレクトツールであり、システム上で簡単に構成して、安全性の低いまたは暗号化されていないHTTPWebトラフィックを暗号化および保護されたHTTPSWebサーバーにリダイレクトできます。システム管理者または開発者の場合は、Nginxサーバーを定期的に使用しています。

この記事では、WebトラフィックをHTTPからNginxの安全なHTTPSにリダイレクトする方法について説明します。







応答と要求はHTTPでプレーンテキストの形式で返されますが、HTTPSはSSL / TLSを使用してクライアントとサーバーシステム間の通信を暗号化します。したがって、多くの理由により、HTTPSはHTTPを介して使用されます。これを以下に示します。



  • 両方向のクライアントサーバー間のすべてのデータは暗号化されます。ただし、傍受された場合、誰も機密情報にアクセスできません。
  • HTTPSを使用している場合、GoogleChromeおよびその他のブラウザはWebサイトのドメインを安全であると見なします。
  • HTTPSバージョンは、HTTP / 2プロトコルを使用して指定されたWebサイトのパフォーマンスを向上させます。
  • HTTPS経由でウェブサイトドメインにサービスを提供する場合、HTTPSで保護されたすべてのウェブサイトを優先するため、ウェブサイトはGoogleでのランクが高くなります。

サイトのバージョンごとに別々のサーバーブロックで、トラフィックHTTPをNginxのHTTPSにリダイレクトすることをお勧めします。また、サーバーの異常な動作を引き起こす可能性のあるif方向を使用してトラフィックをリダイレクトしないようにすることをお勧めします。



すべてのトラフィックをHTTPからHTTPSにリダイレクトします

すべてのトラフィックをHTTPからHTTPSバージョンにリダイレクトするために、次の変更をNginx構成ファイルに追加します。





サーバ {{
聞く 80default_server;
サーバーの名前 _;
戻る 301https://$ host$ request_uri;
}

以下に、上記の各用語を詳しく説明します。

リッスン80default_server –これは、ポート80ですべてのHTTPトラフィックをキャッチするシステムに信号を送ります。
Server_name _ –任意のホスト名と一致するドメインです。



戻り値301https:// $ host $ request_uri –これは検索エンジンにそれを永続的にリダイレクトするように指示します。変数$ hostがドメイン名を保持することを指定します。

構成設定を変更したら、システムにNginxサービスをリロードする必要があります。したがって、次のコマンドを使用してNginxサービスをリロードします。

$sudosystemctl reload nginx

Nginxの指定されたドメインのHTTPをHTTPSバージョンにリダイレクトします

ドメインにSSL証明書をインストールすると、このドメインに2つのサーバーブロックオプションが表示されます。 1つのブロックはポート80でリッスンするHTTPバージョン用で、2番目のバージョンはポート443でのHTTPSです。ただし、単一のWebサイトドメインをHTTPからHTTPSにリダイレクトするには、Nginx構成を開く必要があります。この構成ファイルは、/ etc / nginx / sites-availableディレクトリにあります。いずれの場合も、このファイルが見つからなかった場合は、/ etc / nginx / nginx.conf、/ usr / local / nginx / conf、または/ usr / local / etc / nginxで検索して、このファイルの次の変更:

サーバ {{
聞く 80;
サーバーの名前 domain-name.com www.domain-name.com;
戻る 301https://domain-name.com$ request_uri;
}

上記のコードを1行ずつ理解しましょう。
リッスン80–ポート80を使用して、サーバーは指定されたドメインのすべての着信接続をリッスンします。

Server_name domain-name.com www.domain-name.com –ドメイン名を指定します。したがって、リダイレクトするWebサイトのドメイン名に置き換えます。

301 https://domain-name.com$request_uriを返します–トラフィックをHTTPSバージョンのサイトに移動します。 $ request_uri変数は、引数も含まれる完全な元のリクエストURIに使用されます。

次の方法を使用して、HTTPSwwwバージョンへのトラフィックをwww以外のバージョンのサイトにリダイレクトできます。 www以外のバージョンとwwwバージョンの両方について、別のサーバーブロックにリダイレクトを作成することをお勧めします。

例を挙げて説明しましょう。 www HTTPS要求をwww以外のバージョンにリダイレクトする場合は、次の構成に従います。

サーバ {{
聞く 80;
サーバーの名前 domain-name.com www.domain-name.com;
戻る 301https://domain-name.com$ request_uri;
}
サーバ {{
聞く 443 ssl http2;
サーバーの名前 www.domain-name.com;
#。 。 。他のコード
戻る 301https://domain-name.com$ request_uri;
}
サーバ {{
聞く 443 ssl http2;
サーバーの名前 domain-name.com;

#。 。 。他のコード
}

ドメイン名をwww.linuxhint.comなどのドメインに置き換えます。

結論

トラフィックをHTTPバージョンからNginxサーバー上のHTTPSにリダイレクトする方法について説明しました。 Nginx構成ファイルの設定を変更することで、指定したドメインのトラフィックをHTTPSにリダイレクトすることも、すべてをリダイレクトすることも簡単にできます。この記事で説明したこの方法は、ユーザーエクスペリエンスに変更を加えることで、Webサイトをより安全にするのに役立つ場合があります。