Nginxでヘッダーにアンダースコアが使えない件
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
Written by hoge who lives and works in Tokyo.