nginxがデフォルトでTRACEメソッド無視してるようだ

ここに書いてあったので知ったのですがnginxって問答無用でTRACEメソッド無視なんですね。ngx_http_request.cみるとたしかにそうだ。。

1590     if (r->method & NGX_HTTP_TRACE) {
1591         ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,
1592                       "client sent TRACE method");
1593         ngx_http_finalize_request(r, NGX_HTTP_NOT_ALLOWED);
1594         return NGX_ERROR;
1595     }


Changesにもこう書いてある。

CHANGES:    *) Change: now nginx always returns the 405 status for the TRACE method.


一生懸命こんなことしてたよorz

if ( $request_method ~ "TRACE" ) {
   # something
}


追記:

ちなみにTRACEメソッドを別個対応して拒否してる理由はXST(Cross Site Tracing)ふせぎたいからですね。