すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:パスリダイレクトの設定

最終更新日:Jan 15, 2025

サービスのパスリダイレクトを設定すると、サービスは特定のリクエストに対して HTTP 301 ステータスコードで応答し、リクエストをサービスの別のパスにリダイレクトします。このトピックでは、パスリダイレクトを設定する方法について説明します。

前提条件

準備が完了し、HTTPBin、sleep、および NGINX サービスがデプロイされています。詳細については、「準備」をご参照ください。

手順

  1. HTTPBin サービスへのリクエストを NGINX サービスに転送するように、HTTPBin サービスの仮想サービスを設定します。

    1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

    2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[トラフィック管理センター] > [virtualservice] を選択します。表示されるページで、[作成] をクリックします。

    3. [作成] ページで、次のパラメーターを設定し、[プレビュー] をクリックします。YAML コンテンツが正しいことを確認し、[送信] をクリックしてから、[作成] をクリックします。

      image.png

      YAML プレビューは次のとおりです。

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: httpbin
        namespace: default
      spec:
        hosts:
          - httpbin.default.svc.cluster.local
        http:
          - match:
              - uri:
                  exact: /
            redirect:
              uri: /get
  2. kubeconfig ファイルの情報に基づいて、kubectl を使用して Container Service for Kubernetes (ACK) クラスタに接続し、次のコマンドを実行してパスリダイレクト設定が有効になっているかどうかを確認します。

    kubectl exec -it deploy/sleep -- curl httpbin:8000 -I

    期待される出力:

    HTTP/1.1 301 Moved Permanently
    location: http://httpbin:8000/get
    date: Mon, 14 Aug 2023 02:51:52 GMT
    server: envoy
    transfer-encoding: chunked

    sleep コンテナ内の HTTPBin サービスのルートパスにリクエストが送信され、HTTP 301 ステータスコードで応答されていることがわかります。レスポンスでは、location フィールドが http://httpbin:8000/get に設定されています。これは、リクエストが HTTPBin サービスの /get パスにリダイレクトされることを示しています。