50 *ページのNginx add_header


19

現在、何らかの50 *エラーを送信しているときに、nginxに応答にヘッダーを追加させようとしています。私はすでにhttpブロックにadd_headerディレクティブを持っていますが、それはエラーのように思える以外のすべてのリクエストで尊重されます。また、仮想ホストの1つで次のことを試しました。

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

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


$ curl -I <url> // mediocregopheristhecoolestの出力を投稿できますか
チダ

回答:


21

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

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


かかわらず、応答コードのヘッダを設定する新しいnginxのバージョンのサポート:マラトのコメントを参照してください
ローレンスリートベルト

44

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

add_header X-Test "blahblahblah" always;

1
残念なことに、Debianのレポジトリのバージョンは現在古くなっています(1.6.x)が、nginx は最新の安定ビルド(現在は1.8.x)で独自のリポジトリ維持しています
kungphu

すでに動作しているdebianシステムをアップグレードしたい場合、debianバックポートはより安全です... packages.debian.org/jessie-backports/httpd/nginxアップストリームパッケージは異なるパッケージ編成を使用します(スムーズなnginxアップグレードメカニズムの代わりにダウンタイムを引き起こす可能性があります) )。そして、そのpostrmスクリプトはログを削除します。そして、他の小さな違い...のカップル
ラヨシュVeres
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.