需要 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,FQDN1 和 FQDN2 用作后端目标主机名。 如果您要使用单一 Workflow Manager 计算机,则目标组中只有一个主机。
配置为在网络路径中包含 ArcGIS Web Adaptor
在此示例中,后端主机 FQDN1 和 FQDN2 在托管名为 server 的 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,则需要第 7 层反向代理才能在客户端和 Workflow Manager 之间路由请求。 必须在代理请求上使用原始客户端 Host 标头值设置 X-Forwarded-Host 和 X-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 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>