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)ふせぎたいからですね。