リバース プロキシの背後で TiDB ダッシュボードを使用する
リバース プロキシを使用して、TiDB ダッシュボード サービスを内部ネットワークから外部に安全に公開できます。
手続き
ステップ 1: 実際の TiDB ダッシュボード アドレスを取得する
複数の PD インスタンスがクラスターにデプロイされている場合、実際に TiDB ダッシュボードを実行する PD インスタンスは 1 つだけです。したがって、リバース プロキシのアップストリームが正しいアドレスを指していることを確認する必要があります。このメカニズムの詳細については、 複数の PD インスタンスを使用した展開を参照してください。
デプロイにTiUPツールを使用する場合は、次のコマンドを実行して、実際の TiDB ダッシュボード アドレスを取得します ( CLUSTER_NAME
をクラスター名に置き換えます)。
tiup cluster display CLUSTER_NAME --dashboard
出力は、実際の TiDB ダッシュボード アドレスです。サンプルは次のとおりです。
http://192.168.0.123:2379/dashboard/
ノート:
この機能は、
tiup cluster
展開ツールの新しいバージョン (v1.0.3 以降) でのみ使用できます。TiUPクラスタのアップグレード
tiup update --self tiup update cluster --force
ステップ 2: リバース プロキシを構成する
HAProxy を使用する
HAProxyリバース プロキシとして使用する場合は、次の手順を実行します。
8033
ポートで TiDB ダッシュボードにリバース プロキシを使用します (たとえば)。 HAProxy 構成ファイルで、次の構成を追加します。frontend tidb_dashboard_front bind *:8033 use_backend tidb_dashboard_back if { path /dashboard } or { path_beg /dashboard/ } backend tidb_dashboard_back mode http server tidb_dashboard 192.168.0.123:2379192.168.0.123:2379
をステップ1で取得した TiDB ダッシュボードの実際のアドレスの IP とポートに置き換えます。設定を有効にするために HAProxy を再起動します。
リバース プロキシが有効かどうかをテストします。HAProxy が配置されているマシンの
8033
ポートの/dashboard/
アドレス (http://example.com:8033/dashboard/
など) にアクセスして、TiDB ダッシュボードにアクセスします。
NGINX を使用する
NGINXリバース プロキシとして使用する場合は、次の手順を実行します。
8033
ポートで TiDB ダッシュボードにリバース プロキシを使用します (たとえば)。 NGINX 構成ファイルで、次の構成を追加します。server { listen 8033; location /dashboard/ { proxy_pass http://192.168.0.123:2379/dashboard/; } }http://192.168.0.123:2379/dashboard/
ステップ1で取得した TiDB ダッシュボードの実際のアドレスに置き換えます。構成を有効にするには、NGINX をリロードします。
sudo nginx -s reloadリバース プロキシが有効かどうかをテストします。NGINX が配置されているマシンの
8033
ポートの/dashboard/
アドレス (http://example.com:8033/dashboard/
など) にアクセスして、TiDB ダッシュボードにアクセスします。
パスのプレフィックスをカスタマイズする
TiDB ダッシュボードは、デフォルトでhttp://example.com:8033/dashboard/
などの/dashboard/
パスでサービスを提供します。これは、リバース プロキシの場合にも当てはまります。 TiDB ダッシュボード サービスにhttp://example.com:8033/foo/
やhttp://example.com:8033/
などのデフォルト以外のパスを提供するようにリバース プロキシを構成するには、次の手順を実行します。
ステップ 1: PD 構成を変更して、TiDB ダッシュボード サービスのパス プレフィックスを指定する
PD 構成の[dashboard]
カテゴリのpublic-path-prefix
構成項目を変更して、TiDB ダッシュボード サービスのパス プレフィックスを指定します。この項目を変更したら、PD インスタンスを再起動して変更を有効にします。
たとえば、クラスターがTiUPを使用してデプロイされ、サービスをhttp://example.com:8033/foo/
で実行する場合は、次の構成を指定できます。
server_configs:
pd:
dashboard.public-path-prefix: /foo
TiUPを使用して新しいクラスターをデプロイするときに構成を変更する
新しいクラスターを展開する場合は、上記の構成をtopology.yaml
TiUPトポロジ ファイルに追加して、クラスターを展開できます。具体的な指示については、 TiUP展開ドキュメントを参照してください。
TiUPを使用してデプロイされたクラスターの構成を変更する
デプロイされたクラスターの場合:
クラスターの構成ファイルを編集モードで開きます (
CLUSTER_NAME
クラスター名に置き換えます)。tiup cluster edit-config CLUSTER_NAMEserver_configs
のpd
構成の下に構成アイテムを変更または追加します。server_configs
存在しない場合は、最上位に追加します。monitored: ... server_configs: tidb: ... tikv: ... pd: dashboard.public-path-prefix: /foo ...変更後の構成ファイルは、次のファイルのようになります。
server_configs: pd: dashboard.public-path-prefix: /foo global: user: tidb ...また
monitored: ... server_configs: tidb: ... tikv: ... pd: dashboard.public-path-prefix: /foo変更した構成を有効にするために、すべての PD インスタンスに対してローリング再起動を実行します (
CLUSTER_NAME
クラスター名に置き換えます)。tiup cluster reload CLUSTER_NAME -R pd
詳細は一般的なTiUP操作 - 構成の変更を参照してください。
TiDB ダッシュボード サービスをルート パス ( http://example.com:8033/
など) で実行する場合は、次の構成を使用します。
server_configs:
pd:
dashboard.public-path-prefix: /
ステップ 2: リバース プロキシ構成を変更する
HAProxy を使用する
http://example.com:8033/foo/
を例にとると、対応する HAProxy 構成は次のようになります。
frontend tidb_dashboard_front
bind *:8033
use_backend tidb_dashboard_back if { path /foo } or { path_beg /foo/ }
backend tidb_dashboard_back
mode http
http-request set-path %[path,regsub(^/foo/?,/dashboard/)]
server tidb_dashboard 192.168.0.123:2379
192.168.0.123:2379
をステップ1で取得した TiDB ダッシュボードの実際のアドレスの IP とポートに置き換えます。
TiDB ダッシュボード サービスをルート パス ( http://example.com:8033/
など) で実行する場合は、次の構成を使用します。
frontend tidb_dashboard_front
bind *:8033
use_backend tidb_dashboard_back
backend tidb_dashboard_back
mode http
http-request set-path /dashboard%[path]
server tidb_dashboard 192.168.0.123:2379
構成を変更し、HAProxy を再起動して、変更した構成を有効にします。
NGINX を使用する
http://example.com:8033/foo/
を例にとると、対応する NGINX 構成は次のようになります。
server {
listen 8033;
location /foo/ {
proxy_pass http://192.168.0.123:2379/dashboard/;
}
}
http://192.168.0.123:2379/dashboard/
ステップ1で取得した TiDB ダッシュボードの実際のアドレスに置き換えます。
TiDB ダッシュボード サービスをルート パス ( http://example.com:8033/
など) で実行する場合は、次の構成を使用します。
server {
listen 8033;
location / {
proxy_pass http://192.168.0.123:2379/dashboard/;
}
}
構成を変更し、NGINX を再起動して、変更した構成を有効にします。
sudo nginx -s reload
次は何ですか
ファイアウォールの構成など、TiDB ダッシュボードのセキュリティを強化する方法については、 セキュリティTiDB ダッシュボードを参照してください。