iServer 配置文件说明

发送反馈


iServer 配置文件说明

发送反馈


SuperMap iServer 的主要配置信息位于 WEB-INF(【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF)文件夹下,关于目录说明请参考:安装后目录说明

 

配置文件简介

WEB-INF 文件夹下存储了服务器及其所提供服务的配置信息,文件夹结构如下:

其中:

各个配置文件的主要内容如下表所示:

配置文件的内容

文件名 描述
iserver-datacatalog.xml 数据目录服务配置文件,包含数据目录服务中的数据存储的配置以及其他的一些配置信息。
iserver-log4j.properties 日志的配置文件。
iserver-rest-appContext.xml REST 应用配置文件,其中定义了表述类型与 URI 后缀的映射关系。
iserver-rest-resources.xml 扩展资源的资源配置文件,用户可在其中指定扩展资源的名称、URI、类型、表述生成器名称、参数解析器名称等等。
iserver-services-interfaces.xml 服务接口实例,包含 iserver-services-samples.xml 和 iserver-services-user.xml 中所用到的接口实例,如:rest、restjsr、wms111、wms130、wfs100、wmts100、wmts-china、wcs111、wcs112、handler、gpserver。
iserver-services-samples.xml 产品提供的示例服务的配置信息。
iserver-services.xml 用户发布的服务的配置信息。此文件命名时只要以“iserver-services”开头,服务器即可识别为服务配置文件,且支持多个用户自定义服务配置文件,如 iserver-services-1.xml,iserver-services-2.xml。
iserver-services-buildin.xml iServer内置服务(如Geometry服务、map服务)的配置信息。
iserver-system.xml SuperMap iServer 系统级配置,包括元信息、集群、kml 样式配置等。
web.xml SuperMap iServer 的初始化配置文件,定义了功能与类的映射关系。
iserver-security.db 用于存储用户、角色等信息的数据库。
iserver-services.db 用户存储服务授权信息的数据库。

服务配置文件

SuperMap iServer 的服务均由服务提供者、服务组件、服务接口三个层次组成,所有服务的配置信息存储于服务配置文件中,主要是用于提供接口实例的服务接口配置文件(iserver-services-interfaces.xml)、示例服务的配置文件(iserver-services-samples.xml)以及用户发布服务的配置文件(iserver-services.xml)。其中后两者结构类似,此不赘述。

通过服务配置文件,您可以:

服务接口配置文件

服务接口配置文件 iserver-services-interfaces.xml,包含服务接口实例,根节点为 <application> 元素,包括<interfaces>子节点元素,其中的每一个 interface 元素用于配置一个具体的服务接口,包含以下属性:

示范服务实例配置文件

示范服务实例配置文件 iserver-services-samples.xml,包含产品提供的示范服务实例的配置信息,根节点为 <application> 元素,包括以下子节点元素:

1. <components>

其中的每一个 component 元素用于配置一个具体的服务组件。

注:用户发布服务的配置文件(iserver-services.xml)的 component 元素除以上属性外还支持 initPriority 属性,该属性代表 GIS 服务启动的优先级,优先级数值越高启动 iServer 时 GIS 服务启动顺序越靠前。

2. <providers>

其中的每一个 provider 元素用于配置一个具体的服务提供者。

3. <componentSets>

其中的每一个 componentSet 元素用于配置一个服务组件集合,每个服务组件集合可以引用多个服务组件。

4. <providerSets>

其中的每一个 providerSet 元素用于配置一个服务提供者集合,每个服务提供者集合可以引用多个服务提供者。

内置服务的配置文件

内置服务配置文件 iserver-services-buildin.xml,包含 iServer 提供的几何服务的配置信息,根节点为 <application> 元素,包括以下子节点元素:

1. <componentSets>

其中的每一个 componentSet 元素用于配置一个服务组件集合,每个服务组件集合可以引用多个服务组件。

2. <providerSets>

其中的每一个 providerSet 元素用于配置一个服务提供者集合,每个服务提供者集合可以引用多个服务提供者。

3. <components>

其中的每一个 component 元素用于配置一个具体的服务组件。包含:

4. <providers>

其中的每一个 provider 元素用于配置一个具体的服务提供者。

系统配置文件

iserver-system.xml 包含了系统的配置信息,根节点为 <server> 元素,<server>节点目前主要包含 <properties> 、<management>、<hosts>、<clustering>、<harLog>、<queryFilter> 等子节点元素。

1. <properties> 元素

用于设置 SuperMap iServer 配置系统中全局性质的属性信息,如服务的默认输出路径和访问站点、环境检查与否的设置:

其中,全局属性 outputPath、outputSite 也可以通过服务管理器 WebManager 来设置,请参考全局属性设置

2. <uploadFileSetting>元素

用于统一设置 SuperMap iServer 文件上传相关配置,如上传文件最大体积、解压后最大体积、重名文件是否覆盖、存放目录等:

3. <management>元素

用于配置 SuperMap iServer 的元数据信息,iServer 的元数据信息含服务组件类型元数据(<component-types>)、服务提供者类型元数据(<provider-types>)和服务接口类型元数据(<interface-types>),以及安全配置(<security>)。

安全配置节点示例如下所示:

    <security> 
      <accessControl> 
        <SecuritySetting> 
          <!-- 验证码配置,默认为关闭 -->
          <captchaConfig>
              <enable>false</enable>
              <type>IMAGE_CAPTCHA</type>
              <length>4</length>
              <expireInSeconds>120</expireInSeconds>
          </captchaConfig>
          <isSecurityEnabled>true</isSecurityEnabled>
          <disableRememberMe>false</disableRememberMe>
          <cacheInfoToMemory>true</cacheInfoToMemory>
          <tokenKey>4da7ef8f2e734f56ab2ecfae20cce49a</tokenKey>
          <PBKDF2Iterations>1000</PBKDF2Iterations>
          <!-- 密码防暴力破解设置 -->
          <passwordProtectedSetting> 
            <passwordDiffCount>5</passwordDiffCount>  
            <userPasswordErrorCounterSetting> 
              <passwordErrorProtectEnable>false</passwordErrorProtectEnable>  
              <lockedTime>1200000</lockedTime>  
              <periodLength>600000</periodLength>  
              <allowFailCountPerPeriod>5</allowFailCountPerPeriod> 
            </userPasswordErrorCounterSetting> 
          </passwordProtectedSetting>
          <!-- 三段式根密钥配置 -->
          <rootSecretKeySetting> 
            <loadModelType>TRIPART</loadModelType>  
            <part3>[B@7e31062c</part3> 
          </rootSecretKeySetting> 
        </SecuritySetting> 
      </accessControl> 
      <!-- 安全信息存储配置 -->
      <storage class="com.supermap.server.config.SQLSecurityInfoStorageSetting"> 
        <type>MYSQL</type>  
        <connInfo> 
          <username>root</username>  
          <password>super123.</password>  
          <dbType>MYSQL</dbType>  
          <driverClass>com.mysql.jdbc.Driver</driverClass>  
          <jdbcUrl>jdbc:mysql://192.168.120.44:3306/supermap?useUnicode=true&characterEncoding=UTF-8</jdbcUrl>  
          <maxPoolSize>30</maxPoolSize>  
          <initialPoolSize>5</initialPoolSize>  
          <minPoolSize>5</minPoolSize>  
          <maxIdleTime>0</maxIdleTime>  
          <maxWait>3000</maxWait> 
        </connInfo> 
      </storage> 
      <!-- iServer 内置会话配置 -->         
      <session class="com.supermap.server.config.BuildInSessionSetting"> 
          <type>BuildIn</type>  
          <timeout>10000</timeout>  
          <checkLoggedInAnotherPlace>true</checkLoggedInAnotherPlace> 
          <loggedInAnotherPlaceProcessingStrategy>Notifying</loggedInAnotherPlaceProcessingStrategy> 
      </session> 
      <!-- iServer 加密算法及规格配置 -->                
      <encryption class="com.supermap.server.config.EncryptionSetting">           
        <serviceKeySettings>
          <serviceKeySetting>   
            <keyID>keyIDNAME</keyID>  
            <version>1.1</version>                     
            <algorithm>AES</algorithm>                     
            <keyLength>256</keyLength>                     
            <attributes>abcd</attributes>                 
          </serviceKeySetting>
        </serviceKeySettings>
      </encryption> 
    </security>

其中,

  1) 对于 iServer 内置会话,具体配置参数包括:

           2)对于 Redis 会话,具体配置参数包括:

3. <hosts>元素

用于配置 SuperMap iServer 服务的宿主。可包含多个<host>,一个 host 的示例如下:

<host port="8090" type="webapp" uriBase="/services">
        <interface-type>com.supermap.services.wms.WMSServlet</interface-type>
        <interface-type>com.supermap.services.rest.RestServlet</interface-type>
        <interface-type>com.supermap.services.wfs.WFSServlet</interface-type>
        <interface-type>com.supermap.services.wmts.WMTSServlet</interface-type>
</host>

其中,<interface-type>表示服务宿主中包含的服务类型,<host>的各项属性含义如下:

4. <clustering> 元素

包含集群配置等应用。关于集群子节点相关元素的详细内容,请参考集群专题中利用配置文件管理集群

5. <harLog> 元素

用于配置服务访问日志,如是否启用服务访问日志,服务访问日志的文件名称,监控的服务 URI 地址的设置:

6. <queryFilter> 元素

用于 SQL 查询时 attributeFilter 参数的过滤配置,防止 SQL 注入。这里的 SQL 注入,是指在进行 data 或 map 的 SQL 查询时,通过把非法的或违背用户意愿的字符串插入到 SQL 查询表达式中,欺骗服务器执行恶意的 SQL 命令。

7. <repository>

用于设置临时资源的存储位置。详细信息请参考:临时资源的生命周期

8. <relayService> 元素

用于 iEdge 的中继服务配置,仅在 iEdge 产品中使用。

9.<license>元素

用于保存当前iServe的许可信息,包括正在使用的版本及扩展服务许可。详见在iServer中选择许可。示例如下:

  <licenseMode>DefaultLicense</licenseMode>
  <license> 
    <enabledmodules>
        <string>ENTERPRISE</string> 
        <string>CHART</string>
        <string>NETWORK</string>
        <string>SPACE</string>
        <string>SPATIAL</string>
        <string>TRAFFIC_TRANSFER</string>
        <string>PLOT</string>
        <string>SITUATIONEVOLUTION</string>
        <string>SPATIAL_PROCESSING</string>
        <string>GEO_BLOCKCHAIN_SERVICE</string>
        <string>SPATIAL_STREAMING</string>
        <string>MACHINE_LEARNING_SERVICE</string>
        <string>IMAGE_SERVICE</string>
    </enabledmodules>
  </license> 

其中,

按核扩展模块的名称为在原扩展模块名称后加上核数信息,如机器学习服务(16核)扩展模块的名称为'MACHINE_LEARNING_SERVICE_16CORES'、机器学习服务(32核)扩展模块的名称为‘MACHINE_LEARNING_SERVICE_32CORES’。

 

10.<multiworkers>元素

用于配置多进程服务的相关信息。如进程数量、端口范围等,示例如下:

  <multiworkers>
    <enabled>true</enabled> 
    <workerCount>4</workerCount>
    <workerIP>127.0.0.1</workerIP> 
    <workerPortStart>8900</workerPortStart>
    <workerPortEnd>9000</workerPortEnd> 
    <workerBaseDir>../../workers</workerBaseDir>
    <xmx>1024m</xmx> 
    <communicationPort>8100</communicationPort>
    <requestDispatchMode>RANDOM</requestDispatchMode>  
    <timeout>20</timeout> 
  </multiworkers> 

具体参数描述如下:

注:多进程相关参数(除 workerCount 外)修改后,需要手动重启 iServer 生效。

11.<scheduledTasks>元素

用于设置定时相关任务,如服务器配置文件定时备份、资源定时回收等,示例如下:

  <scheduledTasks>
    <scheduledRestart>
      <enabled>true</enabled> 
      <restartTime>
        <hour>9</hour>
        <minute>35</minute>
      </restartTime>
      <dayOfWeek>1,2,3,4,5,6,7</dayOfWeek> 
      <restartDate>2023-11-1</restartDate> 
    </scheduledRestart>
    <scheduledBackup>
      <enabled>true</enabled> 
      <backupTime>
        <hour>10</hour>
        <minute>40</minute>
      </backupTime>
      <dayOfWeek>1,2,3</dayOfWeek> 
      <backupDate>2023-11-1</backupDate> 
    </scheduledBackup>
  </scheduledTasks> 

具体参数描述如下:

12.<processing>元素

用于分布式分析服务配置,示例如下:

<processing>
    <sparkHome>/home/supermap/spark-1.6.1-bin-hadoop2.6</sparkHome>
    <masterAddress>spark://sparkmaster:7077</masterAddress>
</processing>

<processing>中包含了 Spark 集群的基本配置:

13.<serviceInstanceManager>元素

用于服务实例动态化管理配置,示例如下:

  <serviceInstanceManager>
    <enableLazyInitService>true</enableLazyInitService> 
    <idleDispose>
      <enable>true</enable> 
      <checkPeriod>30000</checkPeriod>
      <maxIdleTime>30000 </maxIdleTime>
    </idleDispose>
    <capacityLimit>
      <enable>true</enable> 
      <maxInstanceCount>2000</maxInstanceCount>
    </capacityLimit>
  </serviceInstanceManager>

其中,

14.<storages>元素

用于分布式切图库管理配置,示例如下:

  <storages>
    <storage> 
      <id>smtiles</id>  
      <tileSourceInfo class="com.supermap.services.tilesource.MongoDBTilesourceInfo">
        <datastoreType>TILES</datastoreType>  
        <type>MongoDB</type>
        <readPreference>primary,nearest,secondary</readPreference>
        <serverAdresses> 
          <string>172.16.120.199:27017</string> 
        </serverAdresses>  
        <database>smtiles</database>
      </tileSourceInfo> 
    </storage>
  </storages>

其中,

数据存储配置文件

数据存储配置文件 iserver-datastores.xml,根节点为 <application> 元素,包括<datastores>子节点元素,其中的每一个 datastore 元素用于配置一个具体的数据存储,包含以下属性:

示例如下:

  <?xml version="1.0" encoding="UTF-8"?>
   <application>
    <datastores>
     <datastore>
      <datastoreType>BIGDATAFILESHARE</datastoreType>
      <type>FOLDER</type>
      <name>samples</name>
      <url>../../samples/data/ProcessingData</url>
      <commonsCSVMetaData> 
       <xIndex>10</xIndex>  
       <yIndex>11</yIndex>  
       <separator>,</separator>
      </commonsCSVMetaData> 
     </datastore> 
    </datastores> 
   </application>

GIS 服务动态加密配置文件

GIS 服务动态加密配置文件 iserver-svcworkkeymappings.xml,位于 config(【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\config)文件夹下,可用于防止数据爬取,提高服务器的安全性。配置文件中存储了待加密的 GIS 服务、加密密钥以及服务的 URL 请求  之间的映射关系,即一个服务类型只能用一个密钥,该密钥用于这个服务类型下的多个 URL 请求。

以对获取矢量瓦片加密为例,示例如下:

  <svcworkkeymappings>
    <serviceType>
      <typeName>com.supermap.services.components.impl.MapImpl</typeName> 
      <keyID>keyID1</keyID>
      <urls>
        /iserver/services/.*?/rest/maps/.*?/tileFeature\\.mvt.*,
        /iserver/services/.*?/restjsr/v1/vectortile/maps/.*?/tiles/.*?/.*?/.*?\\.mvt
     </urls>
    </serviceType>
    <serviceType>
      <typeName>com.supermap.services.components.impl.DataImpl</typeName>
      <keyID>keyID2</keyID>
      <urls>/iserver/services/.*?/rest/data/datasources/.*?/datasets/.*?/tileFeature\\.mvt.*</urls>
    </serviceType>
  </svcworkkeymappings>

其中: