0

在生产环境中,我们有许多不同的 Tomcat 实例。每个 Tomcat 监听不同的端口,使用不同的数据库作为 JDBCRealm,并从不同的 appBase 目录运行应用程序。所以这里是具有特定于实例值的参数:

  • portServerConnector元素的属性
  • connectionURL, connectionName,元素connectionPassword的属性Realm
  • appBaseHost元素属性

当某人(重新)部署一个(新的)Tomcat 实例时,必须替换 server.xml(来自源代码控制)来为这些参数设置特定于实例的值。

我希望在不同的实例中使用相同的 server.xml。所以我的问题是,是否可以从启动脚本中覆盖/重新定义这些参数?

4

1 回答 1

1

是的,但您需要参数化您的 server.xml。

例如,对于 http 连接器,您可以这样做:

<Connector port="${port.http}" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="${port.https}" />

然后创建/编辑 setenv.[bat|sh] 并添加一些内容(对于 Windows):

set CATALINA_OPTS=-Dport.http=10180 -Dport.https=10143

不要忘记您还需要参数化关闭端口。此技术适用于 server.xml、context.xml 和 web.xml 中的任何属性值。

于 2012-04-02T19:56:55.583 回答