📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

リバースプロキシの背後でTiDBダッシュボードを使用する

リバース プロキシを使用すると、TiDB ダッシュボード サービスを内部ネットワークから外部に安全に公開できます。

手順

ステップ1: 実際のTiDBダッシュボードのアドレスを取得する

クラスター内に複数のPDインスタンスがデプロイされている場合、TiDBダッシュボードを実際に実行するのは1つのPDインスタンスのみです。そのため、リバースプロキシのアップストリームが正しいアドレスを指していることを確認する必要があります。このメカニズムの詳細については、 複数の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を使用する

HAプロキシリバース プロキシとして使用する場合は、次の手順を実行します。

  1. 例えば、TiDBダッシュボードのリバースプロキシを8033ポート(例)で使用します。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:2379

    192.168.0.123:2379ステップ1で取得した TiDB ダッシュボードの実際のアドレスの IP とポートに置き換えます。

  2. 設定を有効にするには、HAProxy を再起動します。

  3. リバース プロキシが有効かどうかをテストします。HAProxy が配置されているマシンの8033ポートの/dashboard/アドレス ( http://example.com:8033/dashboard/など) にアクセスして、TiDB ダッシュボードにアクセスします。

NGINXを使用する

NGINXリバース プロキシとして使用する場合は、次の手順を実行します。

  1. TiDBダッシュボードのリバースプロキシを8033ポート(例)で使用します。NGINX設定ファイルに以下の設定を追加します。

    server { listen 8033; location /dashboard/ { proxy_pass http://192.168.0.123:2379/dashboard/; } }

    http://192.168.0.123:2379/dashboard/ステップ1で取得した TiDB ダッシュボードの実際のアドレスに置き換えます。

  2. 設定を有効にするには、NGINX をリロードします。

    sudo nginx -s reload
  3. リバース プロキシが有効かどうかをテストします。NGINX が配置されているマシンの8033ポートの/dashboard/アドレス ( http://example.com:8033/dashboard/など) にアクセスして、TiDB ダッシュボードにアクセスします。

パスプレフィックスをカスタマイズする

TiDBダッシュボードは、デフォルトで/dashboard/パス(例えばhttp://example.com:8033/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を使用してデプロイされたクラスターの構成を変更する

デプロイされたクラスターの場合:

  1. クラスターの構成ファイルを編集モードで開きます ( CLUSTER_NAMEクラスター名に置き換えます)。

    tiup cluster edit-config CLUSTER_NAME
  2. server_configspd設定の下にある設定項目を変更または追加します。5 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
  3. 変更した設定を有効にするには、すべての 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ダッシュボード参照してください。

このページは役に立ちましたか?