web-dev-qa-db-ja.com

ファイルを提供せずにNginx構成から200で返信する

この構成行でファイルを提供せずに200応答を返すようにApacheを構成しました

Redirect 200 /hello

Nginxでこれを行うことはできますか?ファイルを提供したくないので、サーバーに200で応答させたいだけです(リクエストをログに記録しているだけです)。

インデックスファイルを追加して同じことを実現できることはわかっていますが、設定でそれを行うと、問題が発生する可能性が1つ少なくなります。

142
Theo

はい、できます

location / {
    return 200 'gangnam style!';
    # because default content-type is application/octet-stream,
    # browser will offer to "save the file"...
    # if you want to see reply in browser, uncomment next line 
    # add_header Content-Type text/plain;
}
299
cadmi

Nginxは200をレスポンスボディなしで許可しないため、204を使用する必要があります。 204を送信するには、適切な場所にある returnディレクティブreturn 204;に使用するだけです。

21

ステータスコードの定義に従って、200ではなく、204にしたいと思います。200は、応答内のリソースに含める必要があります。もう1つ使用できるのは304で、これはキャッシュされたコンテンツ用です。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

4
sandroid

@Martin Fjordvalの回答を完了するには、そのような構成を使用してヘルスチェックを行う場合は注意してください。

204 HTTPコードは、意味的にヘルスチェック(コンテンツなしの成功表示)に最適です。一部のサービスは、それを成功と見なしますしません

つまり、 Google Cloud Load-balancers に問題がありました。

2
toadjaune