By Steve Gourley on Mar 06, 2017
Removing and Replacing the Esri Web Adaptor
This article will take 2 minutes to read
The Esri web adaptor is a small load balancer/reverse proxy bundled into the ArcGIS Server install but do you know if you need it?
The esri Web Adaptor is an application that runs in your existing website and forwards requests to your ArcGIS Server machines.
ArcGIS Server runs an http server exposed over the private port 6080. The web adaptor can then accept public requests on port 80 or 443 and choose to forward those requests to the ArcGIS Servers in your site or block the request all together. This scenario is a best practice for public facing ArcGIS Servers. This architecture secures the admin endpoints of ArcGIS Server as well as many other benefits. The web adaptor is not required though.
When to install the web adaptor
As you can tell from this decision chart, you are required to install and use the web adaptor when you need web tier authentication with ArcGIS Server. Otherwise, you should skip the install and use something more tuned for the job.
When you prepare to expose your ArcGIS Server site to an external audience, you should install the Web Adaptor or implement comparable request forwarding and security technology.
If your organization has comparable request forwarding and security technology use it - Big IP F5, Squid, HAProxy, etc.
As a developer, it is beneficial to mimic your deployment scenario to avoid the “Works on my machine” problem. Although, it is not always possible to match identically. I chose to use IIS’s Application Request Routing and URL Rewrite to remove the dependency of the web adaptor on my development machines.
Replacing the web adaptor
To replace the web adaptor on an IIS machine it is first necessary to install the Web Platform Installer. Using the web platform installer, search and install the Application Request Routing and URL Rewrite modules for IIS.
Open IIS, select your instance, and find the new Application Request Routing
module. Find the Server Proxy Settings
and enabled the proxy.
Now that IIS can act as a proxy, Url Rewrite can be configured to forward public requests to the private ArcGIS port. Select the website and find the URL Rewrite
module and create a new Inbound Rule
. Url Rewrite will modify requests to http://localhost/arcgis/rest/*
and rewrite the url so that ArcGIS Server can respond. The pattern to match requests to ArcGIS endpoints is (arcgis/rest.+)
. The rewrite url is http://localhost:6080/{R:0}
. The regular expression capture group is placed in the {R:0}
location after modifying the url to point to your local IIS instance with the new port.
Now requests to ArcGIS Server endpoints over public ports in IIS will be routed to the private port. You can remove the web adaptor and requests to ArcGIS Server will still be successful and the 6080 port will no longer be required in the url.