Linux下ArcGIS Server的Tomcat不稳定问题的解决方法

发布时间:2020-09-07编辑:脚本学堂
Linux下ArcGIS Server的Tomcat不稳定问题的解决方法,以及nginx配置反向代理时的一个小问题。背景:Linux上的ArcGIS Server的Tomcat进程基本上一天崩溃一次,全天在处理res

linux下ArcGIS Server的tomcat不稳定问题的解决方法,以及nginx配置反向代理时的一个小问题。

背景:Linux上的ArcGIS Server的Tomcat进程基本上一天崩溃一次,全天在处理rest请求,压力较大。而SOM与SOC压力较小。

解决方案:使用多个Web Service,加入另一台nginx反向代理服务器的upstream。

遇到问题:使用了反向代理的缘故,web service handler必须要用arcgis/rest方式暴露服务。所以如何配置tomcat,便成了一个比较重要的问题。

问题处理:在tomcat配置文件server.xml的host标签中加入Context,指明应用根目录。
 

复制代码 代码如下:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
  <Context path="/arcgis/rest" docBase="./arcgis/rest" reloadable="true"/>
  <!-- SingleSignOn valve, share authentication between web applications
 Documentation at: /docs/config/valve.html -->
  <!--
  <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
  -->

  <!-- Access log processes all example.
 Documentation at: /docs/config/valve.html
 Note: The pattern used is equivalent to using pattern="common" -->
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
   prefix="localhost_access_log." suffix=".txt"
   pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>
 

这样,就可以像访问arcgis server一样,访问localhost:8080/arcgis/rest了(注意修改每个REST Service Handler的SOM地址)。

在nginx中,配置为:
 

复制代码 代码如下:
upstream gpsarcgis{
server 192.168.201.95:8399 max_fails=3;
server 192.168.201.96:8399 max_fails=3;
server 192.168.201.97:8399 max_fails=3;
server 192.168.201.95:8080 max_fails=3;
server 192.168.201.96:8080 max_fails=3;
server 192.168.201.97:8080 max_fails=3;
}

前三个为ArcGIS Server原始地址和端口,后面为tomcat。