Workflow Manager へのリバース プロキシ サーバーの設定

Workflow Manager のライセンスで利用可能。

リバース プロキシ サーバーとは、通常、境界ネットワーク (DMZ (DeMilitarized Zone) またはスクリーン サブネットとも呼ばれる) に配置され、インターネットからのリクエストを処理して内部ネットワーク内のコンピューターに転送するコンピューターです。 リバース プロキシは、受信リクエストを転送することで、組織サイトのファイアウォールの内側にあるコンピューターのアイデンティティをマスクするため、インターネット ユーザーによる直接的な攻撃から内部のコンピューターを保護できます。

必要に応じて、組織のリバース プロキシ サーバーを使用するように ArcGIS Workflow Manager Server を構成できます。 組織がリバース プロキシ サーバーを使用しない場合や、Workflow Manager でリバース プロキシ サーバーを構成しない場合は、ArcGIS Enterprise ポータルで Workflow Manager を構成します。

リバース プロキシ サーバーへの Workflow Manager の追加

Workflow Manager では、2 つのバックエンド ポート (ArcGIS Server 接続用の 6443 と Workflow Manager 接続用の 13443) 間のパスベースのリクエスト ルーティングが必要です。

ArcGIS Web Adaptor は、デフォルト構成の一部としてルーティングを実行します。そのため、クライアント アクセスのために、ネットワーク パスで ArcGIS Web Adaptor の前にレイヤー 3/4 または 7 リバース プロキシを配置できます。 ネットワーク パスで ArcGIS Web Adaptor を使用しないことにした場合、クライアントと Workflow Manager 間のリクエストをルーティングするために、レイヤー 7 リバース プロキシが必要です。

ロード バランサーのタイプの詳細

レイヤー 3/4 リバース プロキシ

レイヤー 3/4 リバース プロキシは、デフォルトで WebSocket プロトコルのトラフィックを渡します。追加の構成は必要ありません。 レイヤー 3/4 リバース プロキシは、バックエンド ターゲットに適切にルーティングするために ArcGIS Web Adaptor のインストールが必要です。

レイヤー 7 リバース プロキシ

次の例では、https://example.domain.com/server がサービス URL として使用され、FQDN1 および FQDN2 はバックエンド ターゲットのホスト名として使用されています。 1 台の Workflow Manager コンピューターを使用している場合、ターゲット グループ内のホストは 1 つだけです。

ネットワーク パスで ArcGIS Web Adaptor を使用する構成

この例では、バックエンド ホストの FQDN1 および FQDN2server という名前の ArcGIS Web Adaptor をホストしています。Workflow Manager には、接続しているクライアントからリバース プロキシを通じて WebSocket トラフィックを渡す必要があります。 Web サーバーが想定どおりにトラフィックを渡せるように、トラフィックは、ラウンド ロビン アルゴリズムとバックエンド ターゲットに対して構成されたヘルス チェックを使用して、バランスを調整することができます。

Apache httpd 構成で WebSocket プロトコルを有効化するための構成テンプレートを次に示します。


RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteRule ^/server/workflow/(.*)? "balancer://wss_webadaptor_endpoint/$1" [P,L]

<Proxy balancer://wss_webadaptor_endpoint>
    BalancerMember wss://FQDN1/server
    BalancerMember wss://FQDN2/server
</Proxy>

以下は、https://example.domain.com/server をサービス URL、FQDN を Web Adaptor のホストにトラフィックをルーティングするコンピューターのホスト名として使用しています。


ProxyPass /server balancer://webadaptor_endpoint/server
ProxyPassReverse /server balancer://webadaptor_endpoint/server

<Proxy balancer://webadaptor_endpoint>
    BalancerMember https://FQDN1/server
    BalancerMember https://FQDN2/server
</Proxy>

ネットワーク パスで ArcGIS Web Adaptor を使用しない構成

ネットワーク パスで ArcGIS Web Adaptor を使用しないことにした場合、クライアントと Workflow Manager 間のリクエストをルーティングするためにレイヤー 7 リバース プロキシが必要です。 X-Forwarded-Host および X-Forwarded-Request-Context ヘッダーは、元のクライアントの Host ヘッダー値の値を使用して、プロキシされるリクエストに設定する必要があります。

Apache httpd 構成で WebSocket プロトコルを有効化するための構成テンプレートを次に示します。


RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteRule ^/server/workflow/(.*)? "balancer://workflow_endpoint_wss/$1" [P,L]

<Proxy balancer://workflow_endpoint_wss>
    BalancerMember wss://FQDN1:13443
    BalancerMember wss://FQDN2:13443
</Proxy>

バックエンド ターゲットを設定するとき、トラフィックを ArcGIS Server および Workflow Manager Web サーバーに送信するように、パスベースのルールをロード バランサーに実装する必要があります。

以下は、パスベースのルーティング ルールのテンプレート例で、https://example.domain.com/server をサービス URL、FQDN をコンピューターのホスト名として使用しています。 https://example.domain.com/server/workflow/* へのクライアント リクエストは https://FQDN:13443/workflow に送られる必要があります。一方、https://example.domain.com/server/* の最上位および他のサブパスへのリクエストは https://FQDN:6443/arcgis に送られる必要があります。

クライアント リクエストを転送するためのパスベースのルーティング ルールを追加するための構成テンプレートを次に示します。


ProxyPass /server/workflow balancer://workflow_manager_endpoint/workflow
ProxyPassReverse /server/workflow balancer://workflow_manager_endpoint/workflow

ProxyPass /server balancer://server_endpoint/arcgis
ProxyPassReverse /server balancer://server_endpoint/arcgis

<Proxy balancer://server_endpoint>
    BalancerMember https://FQDN1:6443
    BalancerMember https://FQDN2:6443
</Proxy>

<Proxy balancer://workflow_manager_endpoint>
    BalancerMember https://FQDN1:13443
    BalancerMember https://FQDN2:13443
</Proxy>