方法
location ~ ^/packages/(?<author>[a-z]+)/(?<name>[a-z]+)/?$
{
proxy_pass http://127.0.0.1:5984/packages/_design/main/_view/main?key="$author/$name";
}
-
(?<symbol_name>regex_pattern)
で hit させ、 -
$symbol_name
変数で取り出せる。
だそく
- とあるサーバーシステムでバックエンドに CouchDB を置いて nginx からリバースプロクシーして一部の機能はほぼ直接一般公開、一部の機能は別に認証システムを経由、といった実装を行う事になり、表向きにはユーザー(アプリケーション)フレンドリーなURLで使用しやすいよう nginx の regex パターンでバックエンドにクエリーする目的で使用する機会があった。
- ちなみにそのような運用では当然ながら
if ( $request_method !~ ^(GET) )
など併用して意図しないユーザーからの DELETE や PUT や POST を防止したり、クエリーをプロクシー段階で破棄するなどのわりと器用な記述も nginx では手間なく簡単にできて便利。
- ちなみにそのような運用では当然ながら