Nginxの設(shè)定ミスがERR_TOO_MANY_REDIRECTSにつながる一般的なシナリオ

支出 Nginx ウェブサーバーとして動作する場合err_too_many_redirects エラーはよくある設(shè)定の問題の一つです。このエラーは通常、Nginxコンフィギュレーションの誤ったリダイレクト?ルールもしかしたらプロキシ設(shè)定を使うと、リクエストは無限のリダイレクトループに入ります。この記事では err_too_many_redirects 不適切なNginx設(shè)定の問題とその解決策。

イメージ[1] - Nginx設(shè)定におけるERR_TOO_MANY_REDIRECTSエラーの解決

1.HTTPからHTTPSへのリダイレクトループ

の最も一般的な原因のひとつである。HTTPからHTTPSへのリダイレクトが正しく設(shè)定されていない多くの場合、サイトはすべてのトラフィックに HTTPS を強制的に使用させたがります。多くの場合、サイトはすべてのトラフィックにHTTPSを強制的に使用させたがりますが、Nginxが正しく設(shè)定されていないと、その結(jié)果 HTTPからHTTPSへリダイレクトサイクル.

間違ったやり方

1.誤ったサーバー?リダイレクト?ルールの設(shè)定サーバーの設(shè)定が誤ってリダイレクトループを?qū)毪?、リクエストがHTTPとHTTPSの間でバウンスし続けた可能性があります。

2.ブラウザ?キャッシュの問題特にHTTPからHTTPSへのリダイレクトが正しく処理されていない場合、ブラウザがリダイレクト情報をキャッシュし、ループを引き起こす可能性があります。

3.ロードバランサーまたはプロキシ設(shè)定の問題ロードバランサーやプロキシサーバーを使用している場合、HTTPとHTTPSの間でリクエストが延々とリダイレクトされる設(shè)定ミスがある可能性があります。

畫像[2]-Nginx設(shè)定におけるERR_TOO_MANY_REDIRECTSエラーの解決

解決策
セキュア HTTP とHTTPSは別々に処理され、互いにリダイレクトされない。例えば、適切なHTTPからHTTPSへのリダイレクト設(shè)定は以下のようになります:

# HTTP -> HTTPS リダイレクト
サーバー
    listen 80; server_name example.com; server_name
    server_name example.com; return 301 ;
    return 301 https://$host$request_uri;
}

# HTTPSコンフィギュレーション
サーバ {
    listen 443 ssl; server_name example.com; }.
    サーバ名 example.com.

    ssl_certificate /path/to/certificate; ssl_certificate_key /path/to/private_key; ssl_certificate_key
    ssl_certificate_key /path/to/private_key; ssl_certificate_key /path/to/private_key; ssl_certificate_key

    # その他のHTTPS設(shè)定
}

2. Xフォワード?プロト ヘッドの方向性

Nginxがリバースプロキシとして動作している場合、バックエンドサーバは Xフォワード?プロト このヘッダーはリクエストのプロトコルタイプを決定する。設(shè)定を誤ると、バックエンドサーバがリクエストを HTTP か HTTPS だと誤認(rèn)し、リダイレクトを引き起こす可能性があります。

間違ったやり方

  • NginxのコンフィギュレーションではXフォワード?プロト ヘッダーが正しく渡されず、バックエンドアプリケーションがHTTPSまたはHTTPにリダイレクトする必要があると誤って判斷した。

解決策
正しいパス Xフォワード?プロト 頭だ:

X-Forwarded-Protoヘッダが正しく渡された。

3.代理店契約の抵觸

リクエストが Nginx 経由でバックエンドサーバにプロキシされる場合、プロトコル (HTTP または HTTPS) の不整合もリダイレクトループの原因になります。特に、HTTP リクエストが HTTPS バックエンドサーバにプロキシされるとき、バックエンドサーバがリクエストを HTTP だと誤認(rèn)すると、HTTPS リダイレクトを送信してループを引き起こす可能性があります。

間違ったやり方

  • NginxはHTTPリクエストを受信し、HTTPSバックエンドにプロキシしますが、バックエンドはHTTPにリダイレクトします。

解決策
Nginxがバックエンドサーバーと同じプロトコルを使用しており、正しく設(shè)定されていることを確認(rèn)する。 プロキシ設(shè)定ヘッダー 頭だ。

proxy_set_headerヘッダーの正しい使い方

4.キャッシュの問題

ブラウザやプロキシサーバは、リダイレクトレスポンスをキャッシュすることがあります。リダイレクト.

サンプルシナリオ

  • ブラウザが間違ったリダイレクト応答をキャッシュすると、それ以降のリクエストは再びリダイレクトループに入ることになります。

解決策
ブラウザのキャッシュをクリア

畫像[5]-Nginx設(shè)定のERR_TOO_MANY_REDIRECTSエラーを解決する

err_too_many_redirects 不正解通常、リダイレクト、プロキシ、Nginx設(shè)定のプロトコル処理に問題がある場合に発生します。このエラーは、リダイレクトルール、プロキシ設(shè)定、ヘッダ受け渡しが適切に行われるようにNginxの設(shè)定を注意深くチェックし調(diào)整することで回避できます。


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業(yè)サイトのための無料ヘルプ!
カスタマーサービス WeChat
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨詢:1025174874
Eメール:info@361sale.com
勤務(wù)時間: 月~金、9:30~18:30、祝日休み
? 複製に関する聲明
著者:リウヤン
終わり
好きなら応援してください。
クドス155 分かち合う
解説 ソファ購入

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

    コメントなし