nginxが小文字のHTTPメソッドでエラーを返す件、nginxを小文字メソッドに対応させる方法

「RESTfulなAPIを叩くときにメソッド名をうっかり小文字で記述するとBad Requestが返るので大文字で記述しましょう」

という話です。

HTTPメソッドがcase-sensitiveとかどうか、今まで気にした事がありませんでしたが、gumroadのAPIを叩くときに謎のエラーに悩まされて気がつきました。

http://datatracker.ietf.org/doc/rfc2616/?include_text=1

5.1.1 Method

The Method token indicates the method to be performed on the
resource identified by the Request-URI. The method is case-sensitive.

しかし、これまでに書いたいくつかのプログラムではHTTPメソッドを小文字で書いて正常に動作していていたので、ちょっと調べてみました。どうやらWindows + Apacheの構成だと無視するらしいです。Linux + Apacheの場合は大文字小文字を区別するがけれど、mod_spellingというモジュールで無視させられるようです。

gumroadはnginxを使っているようですが、nginxは小文字のメソッドにHTTP 400 BadRequestを返します。

nginxをHTTPメソッドの小文字にも対応させるにはどうすれば良いか

パッチをかきました。・・もしかしたら、ソースに直接変更を加えなくても、拡張モジュールとかそういう仕組みがあるのかも?