使用 Workflow Manager 设置反向代理服务器

需要 Workflow Manager 许可。

反向代理服务器是通常在外围网络(也称为隔离区 [DMZ] 或屏蔽子网)中部署的计算机,可处理来自 Internet 的请求并将其转发到内部网络的计算机中。 反向代理通过转发传入请求,对组织防火墙后面的计算机标识进行掩膜,从而保护内部计算机,使其免受 Internet 用户的直接攻击。

可以选择将 ArcGIS Workflow Manager Server 配置为使用组织的反向代理服务器。 如果组织不使用反向代理服务器,或者您不想使用 Workflow Manager 配置反向代理,则使用 ArcGIS Enterprise 门户配置 Workflow Manager

Workflow Manager 添加至反向代理服务器

Workflow Manager 需要两个后端端口之间基于路径的请求路由:6443 用于 ArcGIS Server 连接,13443 用于 Workflow Manager 连接。

ArcGIS Web Adaptor 将在其默认配置期间执行路由,因此可以将第 3/4 或 7 层反向代理置于网络路径中 ArcGIS Web Adaptor 的前面以实现客户端访问。 如果您选择不在网络路径中使用 ArcGIS Web Adaptor,则需要第 7 层反向代理才能在客户端和 Workflow Manager 之间路由请求。

了解有关负载均衡器类型的详细信息

第 3/4 层反向代理

第 3/4 层反向代理默认传递 Websocket 协议流量,无需额外配置。 第 3/4 层反向代理需要安装 ArcGIS Web Adaptor 才能正确路由到后端目标。

第 7 层反向代理

在以下示例中,https://example.domain.com/server 用作服务 URL,FQDN1FQDN2 用作后端目标主机名。 如果您要使用单一 Workflow Manager 计算机,则目标组中只有一个主机。

配置为在网络路径中包含 ArcGIS Web Adaptor

在此示例中,后端主机 FQDN1FQDN2 在托管名为 serverArcGIS Web AdaptorWorkflow 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,则需要第 7 层反向代理才能在客户端和 Workflow Manager 之间路由请求。 必须在代理请求上使用原始客户端 Host 标头值设置 X-Forwarded-HostX-Forwarded-Request-Context 标头。

下面是用于在 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 ServerWorkflow 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>