web-dev-qa-db-ja.com

50 *ページ用のNginx add_header

私は現在、nginxが何らかの50 *エラーを送信しているときに、応答にヘッダーを追加するようにしています。 httpブロックにadd_headerディレクティブがすでにあり、エラーのように見える場合を除いて、すべてのリクエストで尊重されます。私はvhostsの1つでも以下を試しました:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

そのページに移動すると、502が表示されますが、ヘッダーは表示されません。これは単にnginxがしないことですか、それとも私はそれを間違っていますか?

21
Mediocre Gopher

ドキュメント は、add_header "応答コードが200、204、206、301、302、303、304、または307の場合に、指定されたフィールドを応答ヘッダーに追加することを示しています。値には変数を含めることができます。 」したがって、502では機能しません。

サードパーティ headers more モジュールを使用して他のコードにヘッダーを追加できることを忘れてしまいました。ただし、追加するには再コンパイルする必要があります。

21
kolbyjack

Nginx 1.7.5以降では、alwaysを使用して、応答コードに関係なくヘッダーを追加できます。

add_header X-Test "blahblahblah" always;
46
marat