LoginSignup
19
19

More than 5 years have passed since last update.

nginx `location ~` 正規表現でマッチした部分文字列を回収して使う方法

Last updated at Posted at 2016-09-10

方法

location ~ ^/packages/(?<author>[a-z]+)/(?<name>[a-z]+)/?$
{
  proxy_pass http://127.0.0.1:5984/packages/_design/main/_view/main?key="$author/$name";
}
  1. (?<symbol_name>regex_pattern) で hit させ、
  2. $symbol_name 変数で取り出せる。

だそく

  • とあるサーバーシステムでバックエンドに CouchDB を置いて nginx からリバースプロクシーして一部の機能はほぼ直接一般公開、一部の機能は別に認証システムを経由、といった実装を行う事になり、表向きにはユーザー(アプリケーション)フレンドリーなURLで使用しやすいよう nginx の regex パターンでバックエンドにクエリーする目的で使用する機会があった。
    • ちなみにそのような運用では当然ながら if ( $request_method !~ ^(GET) ) など併用して意図しないユーザーからの DELETE や PUT や POST を防止したり、クエリーをプロクシー段階で破棄するなどのわりと器用な記述も nginx では手間なく簡単にできて便利。

参考

19
19
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19