GNU/Linux >> Linux の 問題 >  >> Linux

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

はじめに

Nginx (「Engine-X」と発音)は、LinuxベースのWebサーバーおよびプロキシアプリケーションです。 Nginxは、Webトラフィックをリダイレクトおよび管理するための強力なツールです。暗号化されていないHTTPWebトラフィックを暗号化されたHTTPSサーバーにリダイレクトするように簡単に構成できます。

このガイドでは、Nginxを使用してHTTPをHTTPSにリダイレクトする方法を説明します。

前提条件

  • Nginxを実行しているLinuxサーバー
  • sudoのユーザーアカウント 特権
  • Webサーバーへのリモートログイン(オプション、Webサーバーで直接作業していない場合にのみ必要)
  • 端末/コマンドラインへのアクセス(Ctrl-Alt-TまたはCtrl-Alt-F2)

HTTPからHTTPSへのリダイレクト

HTTPからHTTPSへのリダイレクトを適用するには、Nginx構成ファイルを編集する必要があります。

ほとんどの場合、ファイルは / etc / nginx / sites-availableにあります。 ディレクトリ。見つからない場合は、ここで検索してください: /etc/nginx/nginx.conf、/ usr / local / nginx / conf 、または / usr / local / etc / nginx

Nginx構成ファイルを見つけたら、次のコマンドを使用してテキストエディターで開きます。

sudo nano /etc/nginx/sites-available/server.conf

場所を構成ファイルの実際の場所と名前に置き換えます。

構成ファイルを編集用に開いたら、以下のコードブロックの1つを挿入します。編集が終了したら、ファイルを保存して終了します。次に、次のコマンドを使用してNginxサービスを再起動します。

sudo service nginx restart

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

Nginx構成ファイルを開いて編集し、次のコードを挿入します。

server {

    listen 80 default_server;


    server_name _;


    return 301 https://$host$request_uri;

}

コマンドの内訳は次のとおりです。

  • Listen 80 :これは、ポート80ですべてのHTTPトラフィックをキャッチするようにシステムに指示します
  • Server_name _; :これは任意のホスト名と一致します
  • Return 301 :これは、これが永続的なリダイレクトであることをブラウザ(および検索エンジン)に通知します
  • https://$host$request_uri :これは、ユーザーが入力したもののHTTPSバージョンを指定するための短いコードです

編集後、HTTPデフォルトサーバーのすべてのトラフィックはHTTPSにリダイレクトされます。

特定のサイトをリダイレクトする

複数のサーバーがある場合でも、HTTPSが必要なのはそのうちの一部のみです。選択したトラフィックをリダイレクトするには、サーバーブロックでサーバー名を指定します。

server {

    listen 80 default_server;


    server_name my_app.com;


    return 301 https://my_app.com$request_uri;

}

名前をmy_app.comに置き換えます リダイレクトするサーバーの名前を使用します。別のサーバーブロックを追加して、サイトを追加することもできます。コードをコピーして、サーバーの名前を切り替えるだけです。

SSL接続のみを受け入れる

このコードを追加して、サーバーがポート443でのみSSL接続を受け入れるようにします。

server {

    listen 443 ssl default_server;

    server_name my_app.com;

}


server {

    listen 443 ssl;

    server_name my_website.com;

}

このコードブロックは、2つのWebサイト my_app.comを設定します およびmy_website.com 、SSL接続のみを受け入れます。追加のサーバーブロックを使用して、サイトを追加できます。

Nginxページリダイレクト

リライトコードを使用して、301(永続的)または302(一時的)リダイレクトをすばやく管理できます:

Location /index.html {

       rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;

}

ほとんどの場合、場所は index.htmlになります 、ただし、任意のパス/パターンを指定できます。

rewriteに注意してください コマンドは、301または302リダイレクトでのみ使用する必要があります。

Nginxを使用してドメインをリダイレクトする方法

これは、バニティ拡張子(.bizや.netなど)から標準の.comアドレスに変更した場合に便利です。また、古いドメイン名から新しいドメイン名にリダイレクトするためにも使用できます。

server {

    listen 80;

    listen 443 ssl;

    server_name www.old_company.com;

    return 301 $scheme://www.new_company.com$request_uri;

}

ほとんどの場合、 return コマンドは、書き換えコマンドよりも優先されます。

wwwのWebサイトからwww以外のWebサイトにリダイレクトする

このプロセスは、標準のページリダイレクトに似ています:

server {

    server_name www.new_company.com;

    return 301 $scheme://new_company.com$request_uri;

}

トラフィックをリダイレクトする理由

HTTPトラフィックをHTTPSにリダイレクトする理由はいくつかあります。次のことが必要になる場合があります:

  • より安全で暗号化された接続を強制します。
  • SEOランキングの良いページを維持しますが、そのトラフィックは新しいページに送信します。
  • トラフィックを通知して一時的に「メンテナンス中」ページに送信します。
  • あるウェブサイトから別のウェブサイトにトラフィックを永続的に送信します。つまり、企業の合併後です。

Linux
  1. NginXでHTTPをHTTPSにリダイレクトする

  2. .htaccessを使用してhttpをhttpsにリダイレクトする方法は?

  3. Apache サーバーで HTTP を HTTPS に自動的にリダイレクトする方法は?

  1. Nginxを使用してリダイレクトする方法

  2. Ubuntu16.04にNginxを使用してHTTPGitサーバーをインストールする方法

  3. Ubuntu20.04にNginxを使用してHTTPGitサーバーをインストールする方法

  1. NginxでHTTP/2を有効にする方法

  2. Debian11にNginxを使用してHTTPGitサーバーをインストールする方法

  3. NginxでHTTP/2.0サポートを有効にする方法