English

How To: Set up a reverse proxy for an installed ArcGIS Survey123 website

Summary

This article is for users who have already installed and configured the Survey123 website in their own environment. The Survey123 website installer can be downloaded from the My Esri website. Details for running and configuring the installation can be found in the following article: How To: Install and configure the ArcGIS Survey123 website.

The initial release of the Survey123 website installer requires administrators to specify HTTP or HTTPS ports when configuring the package on the local infrastructure. By default, the Survey123 website is accessible on HTTP (5080) or HTTPS (5443) port. However, some users require a way to access the website using normal HTTP (80) or HTTPS (443) port. While this can be done by using ArcGIS Web Adaptor for portal or server in ArcGIS Enterprise, the initial release of Survey123 relies on a reverse proxy to accomplish this. A reverse proxy is the generic procedure that allows a website to be accessible via a different port or server.

This article describes the steps to set up a reverse proxy for an installed ArcGIS Survey123 website.

Warning:   
Consult with the system administrator to see if this approach is suitable for your environment. For more information, refer to: Reverse Proxy with URL Rewrite v2 and Application Request Routing

Requirements

  • A web server running IIS. Ideally, this is the same web server that your ArcGIS Web Adaptors have been installed on - this provides the advantage of not needing to worry about cross-origin resource sharing with the Enterprise installation. NOTE: You will need to have administrative access on this web server.
  • Install the IIS URL Rewrite module. Ensure that the IIS URL Rewrite module is installed on your web server.
  • Install the IIS Application Request Routing module. Also ensure the IIS Application Request Routing module is installed on the web server. Once installed,  enable proxy functionality as it is disabled by default:
  1. Open IIS Manager on the web server,
  2. Select your server from the tree view on the left.
  3. Double click Application Request Routing
  4. Select Server Proxy Settings from the Actions window on the right.
  5. Check the Enable Proxy check box and click Apply.

Procedure

  1. Open IIS Manager on the web server.
  2. Expand the Sites entry in the left sidebar and select the site to access Survey123 from; in many cases, this is the  Default Web Site. Right-click the site and select Explore to open a Windows Explorer window.
  3. Create a new folder and rename as survey123. This folder is the access point for Survey123.
  4. Download web.config.zip, extract the web.config file and copy it into this new folder. You can choose an alternative name for this folder, but just remember to update the value in the web.config file by editing it in a text editor:
<outboundRules>
  <rule name="update base tag" preCondition="isHTML">
    <match filterByTags="Base" pattern="^/(.*)" />
    <action type="Rewrite" value="/survey123/" />
    <conditions trackAllCaptures="false">
      <add input="{URL}" pattern="/" />
    </conditions>
  </rule>
  <preConditions>
    <preCondition name="isHTML">
      <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
    </preCondition>
  </preConditions>
</outboundRules>
  1. If the Survey123 website is not installed on the machine on which the reverse proxy is configured (or the HTTP port for Survey123 website is changed), update the server name in the inbound rules section of the web.config file. Otherwise, leave the URL as: http://localhost:5080/
<rules>
  <clear />
    <rule name="ReverseProxyHTML" stopProcessing="false">
      <match url="(^$|.*\.html$)" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="http://localhost:5080/{R:1}" />
      <serverVariables>
        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
        <set name="HTTP_ACCEPT_ENCODING" value="" />
      </serverVariables>
    </rule>
    <rule name="ReverseProxyInboundRule1" stopProcessing="true">
      <match url="(.*)" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
        <action type="Rewrite" url="http://localhost:5080/{R:1}" />
    </rule>
</rules>
  1. Close IE. In IIS Manager, right-click the site and click Refresh to show the new folder.
  2. Select the folder.
  3. In the IIS section of the configuration properties, double-click URL Rewrite.
  1. In the URL Rewrite Actions pane, click View Server Variables.
  2. Click Add under the Actions panel on the right and add two variables.
  • HTTP_ACCEPT_ENCODING (this appears in the drop-down list)
  • HTTP_X_ORIGINAL_ACCEPT_ENCODING
  1. Click Back to Rules.
  2. Access the installed Survey123 website using the base URL and reverse proxy point.

Related Information

Last Published: 8/20/2020

Article ID: 000023967

Software: ArcGIS Survey123 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.9.Classic, 2.8