操作方法

如何为已安装的 ArcGIS Survey123 网站设置反向代理

Last Published: April 17, 2023

摘要

本文适用于已在其环境中安装和配置 Survey123 网站的用户。 可以从 My Esri 网站下载适用于 Windows 和 Linux 操作系统的 Survey123 网站安装程序。 有关运行和配置安装的详细信息,请参阅以下文章:如何安装和配置 ArcGIS Survey123 网站

Survey123 网站安装程序需要管理员在本地基础架构上配置软件包时指定 HTTP 或 HTTPS 端口。 默认情况下,可通过 HTTP (5080) 或 HTTPS (5443) 端口访问 Survey123 网站。 但是,某些用户需要一种使用标准 HTTP (80) 或 HTTPS (443) 端口访问网站的方法。 尽管可以通过在 ArcGIS Enterprise 中使用用于门户或服务器的 ArcGIS Web Adaptor 来完成此操作,但 Survey123 网站安装程序依赖于反向代理来完成此操作。 反向代理是一种通用过程,它允许通过其他端口或服务器访问网站。

本文介绍了为已安装的 ArcGIS Survey123 网站设置反向代理的步骤,请参阅以下适用于您的操作系统的部分。

过程

警告: 请咨询系统管理员,以了解这种方法是否适合您的环境。

Windows:
要求

  • 允许 IIS 的 web 服务器。 理想情况下,这是已安装 ArcGIS Web Adaptor 的同一 web 服务器 - 这样做的好处是无需担心与 Enterprise 安装的跨源资源共享。 :您必须在此 web 服务器上具有管理访问权限。
  • 安装 IIS URL 重写模块。 确保 web 服务器上已安装 IIS URL 重写模块。
  • 安装 IIS 应用程序请求路径模块。 还要确保在 web 服务器上安装了 IIS 应用程序请求路径模块。 安装后,启用代理功能,因为默认情况下会将其禁用:
  1. 打开 web 服务器上的 IIS 管理器,
  2. 从左侧的树视图中选择服务器。
  3. 双击应用程序请求路径
  4. 从右侧的操作窗口中选择服务器代理设置
  5. 选中启用代理复选框,然后单击应用

过程

  1. 打开 web 服务器上的 IIS 管理器。
  2. 展开左侧边栏中的站点条目,然后选择要访问 Survey123 的站点;在许多情况下,这是默认 Web 站点。 右键单击该站点并选择浏览以打开“Internet 选项”窗口。
  3. 创建一个新文件夹,并将其重命名为 survey123。 该文件夹是 Survey123 的访问点。
  4. 下载 web.config.zip,解压缩 web.config 文件并将其复制到此新文件夹中。 可以为此文件夹选择一个备选名称,但是只需记住要通过在文本编辑器中对其进行编辑来更新 web.config 文件中的值,如以下示例所示:
<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. 如果没有在配置了反向代理的计算机上安装 Survey123 网站(或更改了 Survey123 网站的 HTTP 端口),请在 web.config 文件的入站规则部分更新服务器名称。 否则,保留 URL 为: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. 关闭“Internet 选项”窗口。 在 IIS 管理器中,右键单击该站点,然后单击刷新以显示新文件夹。
  2. 选择文件夹。
  3. 在配置属性的 IIS 部分,双击 URL 重写
  4. 在 URL 重写操作窗格中,单击查看服务器变量
  5. 单击右侧操作面板下的添加,然后添加两个变量:
    • HTTP_ACCEPT_ENCODING(将出现在下拉列表中)
    • HTTP_X_ORIGINAL_ACCEPT_ENCODING
  6. 单击返回至规则
  7. 使用基础 URL 和反向代理点访问已安装的 Survey123 网站。

Linux
要求:
由于存在许多 Linux 发行版,因此配置反向代理的过程略有不同。 这些说明是通过反向代理访问已安装的 Survey123 网站的基本“最低要求”,涵盖 ArcGIS Enterprise 10.8.x 支持的 3 个 Linux 发行版:Red Hat Enterprise Linux (RHEL) Server、SUSE Linux Enterprise Server (SLES) 和 Ubuntu Server。

  • 运行 Apache 的 web 服务器。 理想情况下,这是已安装 ArcGIS Web Adaptor 的同一 web 服务器 - 这样做的好处是无需担心与 Enterprise 安装的跨源资源共享。 :您必须在此 web 服务器上具有管理访问权限。
  • 使用 SSL 配置了 Apache。 这是可选操作,但强烈建议执行此操作。

过程

  1. *仅 RHEL - 检查 httpd 服务是否可以创建网络连接:
sudo getsebool httpd_can_network_connect
  • 如果其已关闭,请运行:
sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
  1. 加载所需模块。

RHEL - 创建一个配置文件以加载模块:

sudo vim /etc/httpd/conf.modules.d/00-survey123.conf
  • 将以下内容复制粘贴到该文件中:
# This file configures all the modules needed for the Survey123 website: LoadModule proxy_module modules/mod_proxy.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule filter_module modules/mod_filter.so LoadModule substitute_module modules/mod_substitute.so

SLES/Ubuntu - 使用以下方法单独启用模块:

sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod filter sudo a2enmod substitute
  1. 创建/编辑您的 Survey123 站点配置文件以包含反向代理指令。
RHEL  - 示例:
sudo vim /etc/httpd/conf.d/survey123.conf

SLES  - 示例:

sudo vim /etc/apache2/vhosts.d/survey123.conf sudo vim /etc/apache2/vhosts.d/survey123-ssl.conf
Ubuntu - 使用默认站点配置文件的示例:
sudo vim /etc/apache2/sites-available/000-default.conf sudo vim /etc/apache2/sites-available/default-ssl.conf
  1. 将以下反向代理指令复制/粘贴到文件中(请记住注释掉 A 或 B 部分,具体取决于您使用的是 HTTP 还是 SSL):
# ------------------------------------ # Survey123 reverse proxy configuration # Enable ProxyPreserveHost - useful for application logging ProxyPreserveHost On # ------------------------------------ # Configure the reverse proxy.  Use either A. or B. # ------------------------------------ # A. Reverse proxy over HTTP ProxyPass /survey123 http://localhost:5080 ProxyPassReverse /survey123 http://localhost:5080 # B. Reverse proxy over SSL:  # SSLProxyEngine on # These SSLProxy statements may be needed if Survey123 is using an untrusted certificate # SSLProxyVerify none # SSLProxyCheckPeerName off # SSLProxyCheckPeerCN off # SSLProxyCheckPeerExpire off # ProxyPass /survey123 https://localhost:5443 # ProxyPassReverse /survey123 https://localhost:5443 # ------------------------------------ # Filter & update the <base> tag in HTML <Location "/survey123">               AddOutputFilterByType SUBSTITUTE text/html                Substitute 's#"/"#"/survey123/"#ni' </Location> # End Survey123 reverse proxy configuration # ------------------------------------
  1. 重新启动 Apache。

RHEL

sudo systemctl restart httpd

SLES/Ubuntu

sudo systemctl restart apache2
  1. 使用基础 URL 和反向代理点访问已安装的 Survey123 网站,例如:
https://some-machine.domain/survey123

文章 ID:000023967

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容