nginxのHTTP、HTTPSへのリダイレクト強制の下で

nginxのHTTP、HTTPSへのリダイレクト強制の下で

nginxのは、httpsにリダイレクトHTTPに設定されているために文言の多様性を持つことを余儀なく。直接書き換えることができ、あなたはまた、301のリダイレクトを使用することができます。しかし、オンラインの構成の問題の直接のコピーは、多くの場合、それは、サイトの具体的な構成を考慮する必要があり、起こります。

まず、公式文書の観点から、通常の試合リライトのドメイン全体は、それがされたHTTPSの公定法へのリンクをリダイレクトするためには、通じ運ばお勧めできませんまあ最初にすべてのリダイレクト文の記述する必要があります。

return 301 https://$server_name$request_uri;

問題がどこにある次にリダイレクトステートメントが置かれるべきです。

nginxのは、コンパイルしてインストールするために、コンパイル時に変更されていない場合は、--prefixオプション、設定ファイルがなります/usr/local/nginx/conf/nginx.conf二つのセグメントが含まれているデフォルト・サーバは、一つは、リスナー・ポート80開放され、他方は、モニタポート443(すなわち、所望のポートTLS)コメントしています。

これらの二つのポートは、それぞれ独自のサーバセグメントを使用しています。つまり限り、80ポートのサーバセグメントでサイトの場所は、あなたがリダイレクトの目的を達成するために、80ポートのサーバセグメント内に直接文をリダイレクトするために追加できるように、以下の443ポートサーバセグメントを複製するように設定されているよう。

nginxのそうでなければインストールまたは改変自己nginx.confために、サーバ443は、セグメントを含まなくてもよいです。この時間は、モニタの別のセクション443からサーバとしてコンパイルされ、インストールされているデフォルトの設定として選択することができます。

あなたは2つのサーバーセグメントが長すぎたと感じている場合でも、この時点では別のアプローチでは、単一のサーバセグメントの内部の両方の80と443ポートをリッスンすることです。この時間は、HTTP / HTTPSアクセスがhttpsにリダイレクトされます。になりますサーバセグメントに直接リダイレクト文に追加された場合

何の問題もないように見えたが、あなたは慎重に無期限に行くにリダイレクトされます何を見つけるだろう、HTTPまたはHTTPSのいずれかを検討している場合。これは、この場合にはChromeが「リダイレクトループ」エラーを報告することが判明しました。

HTTPにアクセスする際に明確な問題が発生した後、ソリューションは、リダイレクトします。設定は書くことができます。

if ( $scheme = http ){
    return 301 https://$server_name$request_uri;
}

これは、この問題を解決することができます。

しかし、実際には、公式文書はお勧めしません(文書内のif文を使用している場合であるが悪であるので、最善の解決策は、問題を解決するために、2つのサーバセグメント(80モニター、別のモニタ443)を使用することです)。

server {
    listen 80;
    ...
    return 301 https://$server_name$request_uri;
}

server {
    listen 443;
    ...
}

転載へようこそ、ソースを明記してください!
独立したドメイン名のブログ:flywill.cn
公共マイクロ信号への歓迎の注意:VのJavaの町は
彼らの学習&学習教材を共有&リビング
友人が通信したいまた、グループマイクロ・シグナル(注)に追加することができます。EscUpDn

おすすめ

転載: www.cnblogs.com/willLin/p/11928382.html