Multiple-machine deployment with third party load balancer
In this topic
- GIS servers, server directories, and configuration store
- Third-party reverse proxy server or network load-balancer
ArcGIS Server supports the configuration of multiple-machine sites. In a multiple-machine site, two or more servers can be administered and used as a single logical unit, providing ArcGIS Server administrators with great flexibility to easily adjust the computing power of the site by adding or removing GIS servers. Multiple-machine sites also simplify the process of publishing and updating services across multiple GIS servers.
In a multiple-machine deployment, each GIS server must be at the same version number for the site to function correctly. Additionally, the exact same license must be applied to each GIS server that participates in the site.
A common multiple-machine configuration involves a third-party reverse proxy server or network load-balancer sitting in front of a pool of GIS servers.
A key aspect of multiple-machine configurations is that all GIS servers share the same configuration store and server directories. In this manner, an administrator can log in to any GIS server using ArcGIS Server Manager and apply changes that will affect all machines within the site.
GIS servers, server directories, and configuration store
Because all GIS servers in multiple-machine configurations share the same configuration store and server directories, you must select a network location for your server directories and configuration store.
Typically, a domain account is chosen for the ArcGIS Server account because this simplifies the management of data access permissions to network resources. However, depending on your own security policies, you may choose to use local accounts. The ArcGIS Server account (local or domain) needs to have write access to the network share where the configuration store and server directories are located. For more information, see Accounts used by ArcGIS Server.
In a multiple-machine site, load-balancing is handled among all GIS server machines in a single cluster using ports 4004 and above. If your site uses a single cluster, all GIS servers in the site will load-balance requests. If your site uses more than one cluster, load-balancing is handled among all GIS servers within each cluster. Essentially, clusters are independent groups of GIS servers that run dedicated sets of services.
For example, an incoming request is assigned to an available GIS server in the cluster, even if the request was directed to a specific machine within or outside of the cluster. That GIS server then does the work of drawing the map, finding the address coordinate, running the geoprocessing tool, and so on, and returns the result to the client. If a machine is offline or the service that was requested is running in a different cluster, the request is forwarded to the cluster containing the service. The GIS server machines in that cluster load-balance and process the request accordingly.
In large sites with a single cluster, you can configure the site to remove the load-balancing functionality between GIS servers. This reduces network traffic between machines in the site, reduces load on your network, and helps improve monitoring of GIS servers in your site. For full instructions, see Remove load balancing between GIS server machines.
As described in other deployment scenarios, when using file-based data, it is highly recommended to use local resources to the GIS server. This has the disadvantage of forcing you to duplicate your data across all GIS servers, but reduces network traffic and results in higher performance for your services. You should consider this option and use it when it is applicable. The size of your data and the frequency of updates often dictate if keeping your data local across all machines is a practical approach.
When using databases in this deployment pattern, it is important that you always use dedicated hardware. Keep the database tier independent from the GIS server tier.
Third-party reverse proxy server or network load-balancer
In this configuration, ArcGIS Server clients never connect directly to your GIS servers. Instead, they connect through a middle tier that provides security features and makes your overall site more resilient to failures.
From a security perspective, it is not a recommended practice to access the same channel to use and administer your site. Typically, administrative tasks are only enabled through sections of your network or specific machines that can access your GIS servers directly, for example, over port 6080 or 6443. You can overcome this by specifying that only certain IP addresses can access the server in the Administrator Directory. This is controlled by the allowedAdminAccessIPs property in the server's security configuration. To learn how to configure this property to limit access to the server, see the example in Update security configuration.
Requests from client applications are always funneled through the reverse proxy, which prevents the use of any administrative end points. Most third-party proxies allow you to filter incoming requests that include a particular URL pattern. Blocking incoming requests using resources under the ArcGIS Server Administrator Directory (http://gisserver.domain.com:6080/arcgis/admin) or ArcGIS Server Manager (http://gisserver.domain.com:6080/arcgis/manager) effectively block any administrative tasks through your reverse proxy.
Your reverse proxy also serves as a load-balancer for the means of handling failures in the GIS server tier. It is important to understand that it is at the GIS server tier where, ultimately, the decision to run a particular request in one GIS server or another is made. In a multiple-machine site, all GIS servers sharing the same configuration store communicate with each other for the purpose of load-balancing incoming requests to the site. In a multiple-machine site, there is no guarantee that a request forwarded by the load-balancer to a particular GIS server machine will be processed by that specific machine. A simple load-balancing algorithm such as round-robin is adequate for this configuration.
If your network load balancer supports a health check function, you can use ArcGIS Server's heath check endpoint to determine if the site is available to receive requests. This is useful to quickly determine if there's a software or hardware failure in the site. For more information, see Health Check in the ArcGIS REST API.
To learn how to integrate a reverse proxy server with ArcGIS Server, see Using a reverse proxy server with ArcGIS Server.
- A single ArcGIS Server site provides the means to easily administer ArcGIS Server and its services across a number of machines.
- Easy to adjust the capacity of your site by adding and removing GIS server machines.
- Load balancing is handled among GIS servers.
- Use of ArcGIS Server directories and data in shared network locations can negatively affect performance of services under heavy load.
- Requires understanding of third party load balancers.
- Does not support web tier authentication. Refer to Multiple machine deployment with ArcGIS Web Adaptor to leverage web tier authentication.