Virtual URL, Service URL のワイルドカードの指定方法
API Connect ポータルの Virtual URL, Service URL のワイルドカードの指定について説明します。
概要
ポータル の Service の作成、更新で、Virtual URL, Service URL にワイルドカード(*)を指定できます。
(例)
| Virtual URL | Service URL |
|---|---|
http://*.fj.local:30000 |
http://*.test.local:10000 |
この例の設定では、Front Agent に http://gitlab.fj.local:30000 宛てのリクエストが届くと、
Back Agent は Service URL 中のワイルドカード部分を gitlab に置き換えた
http://gitlab.test.local:10000 へリクエストを転送します。
本機能を使用するには、Front Agent と Back Agent のバージョンが共に v1.5.0 以降である必要があります。
いずれかが v1.5.0 より古い場合、リクエストがワイルドカードにマッチすると以下のレスポンスが返ります。
- Front Agent が古い場合
(404) Service or Route for request([VirtualURL]) is not registered - Tunaclo - Back Agent が古い場合
(500) Internal Server Error - Tunaclo - 両方が古い場合
「Front Agent が古い場合」と同じ
IP アドレスを指定した Virtual URL/Service URL にワイルドカードを用いることはできません。例えば
http://*.168.0.1:30000 という設定は出来ません。
ワイルドカードの指定方法
ワイルドカードを使用する場合は、Virtual URL とペアの Service URL 両方にワイルドカードを指定してください。
| Virtual URL | Service URL | 指定可否 |
|---|---|---|
http://*.fj.local:30000 |
http://*.test.local:10000 |
OK |
http://*.fj.local:30000 |
http://*.local:10000 |
OK |
http://*.fj.local:30000 |
http://gitlab.test.local:10000 |
Error |
ワイルドカードは、Virtual URL/Service URL のドメイン部分の左端のラベルに1つのみ指定可能です。
- ワイルドカード部分にはそれ以外の文字列を指定できません
*のみのドメインは指定できません
| Virtual URL or Service URL | 指定可否 |
|---|---|
http://*.fj.local:30000 |
OK |
http://*.local:30000 |
OK |
http://gitlab.*.local:30000 |
Error |
http://*.*.local:30000 |
Error |
http://gi*lab.local:30000 |
Error |
http://*:30000 |
Error |
リクエストとワイルドカードとのマッチング
ワイルドカード部分は、送信されたリクエスト中の1つのラベルにのみマッチします。
| Virtual URL | リクエスト | マッチ |
|---|---|---|
http://*.fj.local:30000 |
http://gitlab.fj.local:30000 |
する |
http://*.fj.local:30000 |
http://xxx.gitlab.fj.local:30000 |
しない |
http://*.fj.local:30000 |
http://gitlab.xxx.fj.local:30000 |
しない |
http://*.fj.local:30000 |
http://fj.local:30000 |
しない |
送信されたリクエストが、ワイルドカードを含む Virtual URL と含まない Virtual URL の両方にマッチする場合は後者を優先します。
例えば、Service に以下の2つの Endpoint が指定されている場合、http://gitlab.fj.local:30000 へのリクエストは
http://gitlab.test.local:22222 へ転送されます。
| Virtual URL | Service URL |
|---|---|
http://*.fj.local:30000 |
http://*.test.local:11111 |
http://gitlab.fj.local:30000 |
http://gitlab.test.local:22222 |