TOO_MANY_REDIRECTSを引き起こすNginx設定エラーのトラブルシューティング

リダイレクトが多すぎる(リダイレクトが多すぎる)というエラーは、ウェブサイトでよく見かけるエラーです。この問題はユーザーのアクセスやSEOの結果に影響します。今回は、Nginxの設定ミスが原因のTOO_MANY_REDIRECTSのトラブルシューティングの考え方と解決策を解説します。

图片[1]-Nginx 配置错误导致 TOO_MANY_REDIRECTS 的排查方法

1.TOO_MANY_REDIRECTSエラーの原理

ブラウザウェブサイトにアクセスする際、サーバーがリダイレクトルールを誤って設定し、リクエストが複数の URL ブラウザはデッドループを防ぐため、最終的にTOO_MANY_REDIRECTSエラーを返す。

共通のパフォーマンス:

  • ERR_TOO_MANY_REDIRECTS でページのロードに失敗する。
  • F12 Developer Tools Networkパネルに301または302リダイレクトの重複が表示される

2.試験前の準備

トラブルシューティングの前に、以下の情報を確認してください:

  • サイトに使用されているドメイン名(wwwとnon-wwwが混在しているか)
  • SSL(HTTPS)が設定されているかどうか
  • を使用しているかどうかにかかわらず シーディーエヌ またはリバースプロキシ(Cloudflareなど)

3.Nginxの設定でリダイレクトエラーが発生する一般的な原因

3.1 HTTPとHTTPSの競合の設定

また、自動的にHTTPSにジャンプするようにHTTPを設定し、HTTPSの設定がHTTPにジャンプして戻ると、無限ループが発生する。

图片[2]-Nginx 配置错误导致 TOO_MANY_REDIRECTS 的排查方法

典型的なエラー例:

サーバー
    listen 80; server_name example.com; server_name
    サーバー名 example.com; return 301 ; #エラー
    return 301 http://example.com$request_uri; #エラー: httpへジャンプ
}

サーバー {
    listen 443 ssl; server_name example.com; return 301 ; #エラー
    server_name example.com; server_name; server_name example.com; server_name example.com; server_name example.com
    return 301 https://example.com$request_uri; } server { listen 443 ssl; server_name example.com; return 301 https://example.com$request_uri; } サーバーは、443 sslをリスンします。
}

このコンフィグレーションは、HTTPリクエストをHTTP(それ自身)に、HTTPSリクエストをHTTPS(それ自身)にリダイレクトし、期待されるHTTP -> HTTPSホップを完了しない。

3.2 wwwと非wwwリダイレクトの設定ミス

TOO_MANY_REDIRECTSは、WWWと非WWが互いに飛び越えるときにも生成される。

設定ミスの例:

サーバー
    サーバー名 example.com.
    return 301 http://www.example.com$request_uri;
}

サーバー
    server_name www.example.com; return 301 www.example.com; } server { server_name www.example.com;}。
    return 301 http://example.com$request_uri; } サーバー { サーバー名 http://example.com$request_uri;}。
}

このコンフィギュレーションが原因となる:

  • example.comへ www.example.com へジャンプ
  • www.example.com にアクセスすると、example.comに戻る。
  • 無限ループ

3.3 リバースプロキシとHTTPS設定の競合

Cloudflareを使用、パゴダリバースプロキシやCDNを利用した後、もし適切な Xフォワード・プロト このパラメータを使用すると、NginxがURLプロトコル(HTTPSをHTTPとして)を誤って解釈し、ページジャンプエラーが発生する可能性があります。

解決策

設定ファイルに追加する:

コンフィギュレーション・ファイルは通常、以下のいずれかの場所にある:

  • nginx / nginx.confを開く(メインの設定ファイルです。)
图片[3]-Nginx 配置错误导致 TOO_MANY_REDIRECTS 的排查方法
サーバー
    listen 80; server_name example.com ;
    サーバ名 example.com www.example.com;

    set $https_off ""; if ($http_x_forwarded_proto !
    if ($http_x_forwarded_proto != "https") { $http_x_forwarded_proto !
        $https_off "redirect" を設定する;
    }
    if ($https_off = "redirect") { $https_off を "redirect" に設定する。
        return 301 https://$host$request_uri;
    }
}

あるいは標準的な方法を使う:

サーバー
    listen 80; server_name example.com ;
    server_name example.com www.example.com; return 301 www.example.com;
    return 301 https://$host$request_uri;
}

HTTPSコンフィギュレーションに追加する:

サーバー
    listen 443 ssl; server_name example.com ;
    server_name example.com www.example.com;
    # SSL証明書の設定...
}

また、Nginxのグローバル・コンフィギュレーションでは fastcgi_params ファイルまたはサーバーのセグメント:

fastcgi_param HTTPS オン。

リバースプロキシがHTTPS情報を渡すことを確認する。

4.体系的なトラブルシューティング・プロセス

TOO_MANY_REDIRECTSのトラブルシューティングの推奨手順を以下に示す:

  • ブラウザのネットワークパネルを確認する
    ジャンプリンクを見て、HTTPとHTTPSのループなのか、wwwとnon-wwwのループなのかを確認する。
  • Nginx設定ファイルの表示
    • 複数のserver_nameが重複して設定されていないか?
    • リターン301が同じドメイン名を指していることがループの原因になっていませんか?
  • リバースプロキシの設定の確認 Cloudflareを使用している場合は、"SSL/TLS Mode "が選択されていることを確認してください。 フル(厳格)フレキシブル・モードによるループを避けるため。
  • 調べる ワードプレス またはその他のCMS設定 ウェブサイトのURLがHTTPに設定されているにもかかわらず、サーバーがHTTPSを強制するように設定されている場合も、ホップの重複が発生する可能性があります。
图片[4]-Nginx 配置错误导致 TOO_MANY_REDIRECTS 的排查方法
  • ブラウザとCDNのキャッシュをクリアする 設定が変更されてもキャッシュが更新されず、古いエラーが表示されることがある。

概要

TOO_MANY_REDIRECTSあり Nginx コンフィギュレーションにおける一般的な問題の鍵 リダイレクト・ループの回避以下は、HTTP対HTTPSを確認することで解決できるエラーの例です。HTTPとHTTPS、wwwとnon-wwwの設定を確認し、ウェブサーバー、CDN、アプリケーション設定のトラブルシューティングと組み合わせることで、これらのタイプのエラーを解決することができます。


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ!
客服微信
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨询:1025174874
Eメール:[email protected]
勤務時間: 月~金、9:30~18:30、祝日休み
© 複製に関する声明
本文作者:托尼屎大颗
終わり
好きなら応援してください。
クドス110 分かち合う
解説 ソファ購入

コメントを投稿するにはログインしてください

    コメントなし