Anypoint Platform Private Cloud Edition 用ロードバランサのセットアップ

Anypoint Platform Private Cloud Edition は複数のサーバがある本番環境で実行する必要があります。サーバ間でトラフィックを分散し、特定のポートへのアクセスを制限するには、ロードバランサをインストールして設定する必要があります。単一サーバの開発環境でも、MuleSoft ではロードバランサの使用をお勧めします。

Anypoint Private Cloud Edition 用 AWS Provisioner を使用している場合、このセクションをスキップしてください。インストール中に Amazon ELB が作成され、必要な設定が行われます。

任意の方法を使用してクライアント要求を分散するようにロードバランサを設定できますが、ほとんどのコンテキストではラウンドロビン方式が最適です。ロードバランサは、ネットワークのすべてのマシンで使用可能な IP アドレスを使用してアクセスできる必要があります。

ロードバランサは次の TCP ポートをルーティングする必要があります。

ロードバランサポート インスタンスポート 内部用途

80

30080

HTTPs への HTTP のリダイレクト

443

30443

HTTPS ポート

8889

30889

Runtime が接続する WebSocket ポート

9500

32009

Ops Center アクセスポート

それぞれのケースで、ロードバランサはロードバランサポートでリスンし、受信要求をインスタンスポートにリダイレクトする必要があります。Anypoint Platform インストールには、設定済みの各インスタンスポートでリスンし、「内部用途」列に記載したアクションを実行する内部 NGINX サーバが含まれます。

ロードバランサはアドレス HTTP:10248/healthz をポーリングしてプラットフォームサーバで状態チェックを実行し、アクセス可能であることを確認する必要があります。

ロードバランサで SSL ログイン情報を設定しないでください。TLS 終了は、アクセス管理を使用して設定された証明書のあるプラットフォームによって処理されます。「追加のインストールタスクの実行」を参照してください。

Nginx を使用してロードバランサを実装する

  1. /etc/nginx/stream.d/* で定義されたすべての設定プロパティを参照して、/etc/nginx/nginx.conf ファイルでストリームブロックを有効にします。これは、以下を追加することで実現できます。

    stream {
       include /etc/nginx/stream.d/*.conf;
    }
  2. /etc/nginx/conf.d から default.conf ファイルを削除します。

  3. /etc/nginx/stream.d という名前のフォルダを作成し、そのフォルダ内で onprem.conf という名前のファイルを作成します。

  4. 次のコンテンツを onprem.conf に貼り付けます。

    server {
       listen 80;
       proxy_pass 0.0.0.0:30080;
    }
    
    server {
       listen 443;
       proxy_pass 0.0.0.0:30443;
    }
    
    server {
       listen 8889;
       proxy_pass 0.0.0.0:30889;
    }
    
    server {
       listen 9500;
       proxy_pass 0.0.0.0:32009;
    }
    
    server {
       listen 9501;
       proxy_pass 0.0.0.0:30083;
    }
  5. NGINX を起動する前に SELinux でデフォルトのポートを有効にします。次のコマンドを 1 つずつ実行します。

    semanage port -a -t http_port_t  -p tcp 8889
    semanage port -a -t http_port_t  -p tcp 9500
    semanage port -a -t http_port_t  -p tcp 9501
  6. NGINX を起動します。

    service nginx restart

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub