参数化目录设置¶
环境参数化允许通过模板机制将Geoserver目录中的一些设置参数化,以根据运行环境定制Geoserver的设置。
例如,可能需要移动在计算机上运行的Geoserver实例所做的最新更改 A 到计算机上运行的另一个实例 B ,但两种环境的设置方式有一些不同(例如,用于连接到数据库的密码不同)。在这种情况下,如果对实例中的目录进行简单备份 A 在实例上创建和恢复 B ,数据库上配置的存储将无法访问,相应的层将无法正常工作。
另一个示例可能是需要针对池中可用连接的最大数量,为两个不同的Geoserver实例提供不同的连接池配置。
要启用环境参数化,需要通过系统变量将以下标志设置为Geoserver的环境:
-DALLOW_ENV_PARAMETRIZATION=true
A properties
需要创建保存参数设置的文件。可以通过命名它来提供它 geoserver-environment.properties
并将其放置在Geoserver的DATA_DIR的根目录中。
Geoserver还能够使用 properties
Geoserver的DATA_DIR之外的文件。在本例中,指向 properties
必须以下列方式之一定义文件:
通过提供系统变量
-DENV_PROPERTIES={properties filepath}
。通过提供一个名为
ENV_PROPERTIES
并将属性文件的路径作为值。通过在
WEB-INF/web.xml
Geoserver应用程序的文件:
<web-app>
...
<context-param>
<param-name>ENV_PROPERTIES</param-name>
<param-value>/var/lib/geoserver_data</param-value>
</context-param>
...
</web-app>
曾经是一种加载 ENV_PROPERTIES
已定义和设置,则可以编辑需要参数化源机器的Geoserver配置文件。例如,让我们将商店的URL参数化(这也可以通过Geoserver管理用户界面来完成):
vim coveragestore.xml
::... <enabled>true</enabled> <workspace> <id>WorkspaceInfoImpl--134aa31e:1564c12ef68:-7ffe</id> </workspace> <__default>false</__default> <url>${store_url}</url> </coverageStore>
变量的定义 store_url 需要添加到
geoserver-environment.properties
::store_url = file:///var/geoserver/store/teststore
重新启动Geoserver后,现在就可以看到“连接参数”设置中的URL引用该变量 store_url 其值在 geoserver-environment.properties
文件。

另一个常见用例是对矢量数据存储的连接详细信息进行参数化。数据库的主机名、凭据和连接池参数往往会因环境而异。在中设置变量后 geoserver-environment.properties
文件中,可以按如下方式配置数据存储区:
