ホームページ  >  記事  >  運用・保守  >  Nginx が HTTP を HTTPS にリダイレクトする方法

Nginx が HTTP を HTTPS にリダイレクトする方法

WBOY
WBOY転載
2023-05-13 09:52:133245ブラウズ

Nginx は、安全でない、または暗号化されていない HTTP Web トラフィックを、システム上の暗号化された安全な HTTPS Web サーバーにリダイレクトするように簡単に構成できる強力なリダイレクト ツールです。

Nginx (「エンジン x」と発音) は、インターネット上の最大の Web サイト トラフィックの管理と処理を担う、無料のオープンソースの Linux ベースの高性能 Web およびリバース プロキシ サーバーです。 。 負荷。 Nginx は、安全でない、または暗号化されていない HTTP Web トラフィックを、システム上の暗号化された安全な HTTPS Web サーバーにリダイレクトするように簡単に構成できる強力なリダイレクト ツールです。システム管理者または開発者は、Nginx サーバーを頻繁に使用する必要があります。

この記事では、Nginx で Web トラフィックを HTTP から安全な HTTPS にリダイレクトする方法について説明します。 HTTP メッセージ ヘッダーはクリア テキスト文字列形式で送信されますが、HTTPS は SSL/TLS を使用してクライアント システムとサーバー システム間の通信を暗号化します。したがって、さまざまな理由から HTTPS が HTTP に置き換わるべきです:

1. クライアントとサーバー間の双方向のすべてのデータが暗号化されます。ただし、傍受された場合、誰も機密情報にアクセスできなくなります。

2. HTTPS を使用すると、Google Chrome およびその他のブラウザは Web サイトのドメインが安全であるとみなします。

3. HTTPS バージョンは、HTTP/2 プロトコルを使用して指定された Web サイトのパフォーマンスを向上させます。

4. Web サイトのドメインを HTTPS 経由で提供すると、HTTPS で保護されたすべての Web サイトが優先されるため、その Web サイトは Google で上位にランクされます。

5. Nginx では、サイトのバージョンごとに個別のサーバー ブロックでトラフィック HTTP を HTTPS にリダイレクトするのが最善です。また、サーバーの動作が不安定になる可能性があるため、「if」方向を使用してトラフィックをリダイレクトしないことをお勧めします。

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

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

server { 
    listen 80 default_server; 
    server_name _; 
    return 301 https://$host$request_uri; 
}

以下では、上記の各用語について詳しく説明します:

  1. Listen 80default_server – これにより、ポート 80

  2. 上のすべての HTTP トラフィックをキャプチャするようにシステムに指示されます。

  3. #Server_name _ – リクエスト受信後のシーケンスの一致


  4. # #Return 301 https://$ host$request_uri – これにより、検索エンジンに永続的にリダイレクトするように指示されます。ドメイン名を保持する変数 $host を指定します。

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

$ sudo systemctl reload nginx

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

ドメインに SSL 証明書をインストールした後、このドメイン名には 2 つのサーバー ブロック オプションがあります。 1 つのブロックはポート 80 でリッスンする HTTP バージョン用で、2 番目のブロックはポート 443 でリッスンする HTTPS バージョン用です。ただし、Web サイトのドメインを HTTP から HTTPS にリダイレクトするには、Nginx 構成を開く必要があります。この設定ファイルは /etc/nginx/sites-available ディレクトリにあります。このファイルが見つからない場合は、/etc/nginx/nginx./usr/local/nginx/conf または /usr/local/etc/nginx を検索し、このファイルで次の変更を実行します。
server { 
    listen 80; 
    server_name linuxmi.com www.linuxmi.com; 
    return 301 https://linuxmi.com$request_uri; 
}

上記のコードを 1 行ずつ見てみましょう。

    Listen 80 – サーバーはポート 80 を使用して、指定されたドメイン名のすべての受信接続をリッスンします。

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

  2. Return 301 https://linuxmi.com$request_uri – トラフィックを HTTPS バージョンのサイトに移動します。

  3. $request_uri 変数は、完全な元のリクエスト URI に使用され、パラメータも含まれます。
  4. 次の方法を使用すると、サイトの HTTPS www バージョンから非 www バージョンにトラフィックをリダイレクトできます。非 www バージョンと www バージョンの場合は、別のサーバー ブロックにリダイレクトを作成することをお勧めします。例を挙げて説明しましょう。 www HTTPS リクエストを www 以外のバージョンにリダイレクトする場合は、次の構成に従う必要があります。
server { 
    listen 80; 
    server_name linuxmi.com www.linuxmi.com; 
    return 301 https://linuxmi.com$request_uri; 
} 
server { 
    listen 443 ssl http2; 
    server_name www.linuxmi.com; 
    # . . . other code 
    return 301 https://linuxmi.com$request_uri; 
} 
server { 
    listen 443 ssl http2; 
    server_name linuxmi.com; 
 
    # . . . other code 
}

ドメイン名を実際のドメイン名 (www.linuxmi.com など) に置き換えます。

Nginx 構成ファイルの設定を変更することで、特定のドメイン名またはすべてを HTTPS に簡単にリダイレクトできます。この記事で説明したアプローチでは、ユーザー エクスペリエンスを変更することで Web サイトの安全性を高めることができます。

以上がNginx が HTTP を HTTPS にリダイレクトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。