/dev/null

Nginxでヘッダーにアンダースコアが使えない件

November 18, 2015

Nginxでヘッダーにアンダースコアが使えない!!!

解決方法

  • ヘッダーのアンダースコアをハイフンに変更する
  • (代替案) nginx.confにunderscores_in_headers onを追記する

調べたこと

$ curl -i -H 'ACCESS_TOKEN: f1dea7d27c4ffd8************' -X GET http://hoge.com/api/v1/users/1

こんな感じでNginxに乗っけたAPIに、カスタムヘッダーを使ってリクエスト投げてたんですがうまく拾えてないみたい。調べてみたらこんなの出て来ました。

underscores_in_headersってオプション。

でもデフォルトでoffなのなぜ?調べたらHTTPの仕様で、ヘッダーに評価できない文字が含まれていたらアンダースコアに変換するらしい。なるほど。

$ curl -i -H 'ACCESS-TOKEN: f1dea7d27c4ffd8************' -X GET http://hoge.com/api/v1/users/1

ヘッダを修正する方がよさそうですね。アンダースコアをハイフンに変更したらうまく拾ってくれました。

参考URL

nginx passing back custom header

Environment Variables in Apache – Apache HTTP Server Version 2.5


hoge

Written by hoge who lives and works in Tokyo.