nginx error_page

2223 ワード

1.error_page文法
構文:
error_page code [ code... ] [ = | =answer-code ] uri | @named_location 
標準値:
no 
フィールドを使う:
http, server, location, location   if   
2.例
nginx指令error_pageの役割は、エラーが発生したときに予め定義されたuriを表示することです。例えば、
error_page 502 503 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}   
このように実際に内部ジャンプが発生しました。502、503にアクセスすれば50 x.の内容に戻ります。ここでは50 x.htmlのページが見つかるかどうかを注意しなければなりません。だから、locationを追加して、あなたのカスタマイズした50 xページを見つけられるように保証します。
このような場合の戻り状態を自分で定義してもいいですか?例えば:
error_page 502 503 =200 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}   
このようにユーザアクセスが発生した502、503の時にユーザへの返信状態は200であり、内容は50 x.
エロをつとめるpageの後ろに付いているのが一つの静的な内容ではない場合、例えばproxyd serverまたはFastCGI/uwsgi/SCGI serverで処理すれば、serverが戻ってくる状態(200,302,401または404)もユーザーに戻ることができます。
error_page 404 = /404.php;
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}   
named locationを設定して、中で対応する処理をすることもできます。
error_page 500 502 503 504 @jump_to_error;
location @jump_to_error {    
    proxy_pass http://backend;
}
また、エラーページは、クライアントを302、301などのリダイレクトすることによって処理することもでき、デフォルトのステータスコードは302である。
error_page 403      http://example.com/forbidden.html;
error_page 404 =301 http://example.com/notfound.html;
一方、erroruageは一度の要求には一回しか応答できません。対応するinxはもう一つの構成があり、このオプションを制御できます。recursive_error_pagesはfalseとしてデフォルトで設定されています。
2.Ngixカスタム404エラーページ構成には等号の違いがありますか?
  • erroruage 404/404.htmlは、カスタム404ページのコンテンツを表示し、正常に404状態コードに戻ります。
  • erroruage 404=/404.htmlはカスタム404ページのコンテンツを表示することができますが、200ステータスコードを返します。
  • erroruage 404/40.4 phpは、動的404エラーページであれば、headerコード(たとえば301ジャンプ)を含めて、正常に実行できなくなります。正常には404コードに戻ります。
  • erroruage 404=/40.4 phpは、動的404エラーページであれば、headerコード(たとえば301ジャンプ)を含み、等号構成は正常に実行され、phpで定義された状態コードに戻ることができます。しかし、phpで定義されている場合、404ステータスコードは正常に戻ることができますが、カスタムページコンテンツを表示することができません。この場合、410コードで置換することが考えられます(header(「HTTP/1.1 Gone」)。正常に410状態コードに戻り、カスタムコンテンツが正常に表示されます)。
    転載先:https://www.cnblogs.com/redirect/p/10066761.html