Tomcat 主目录环境变量
Tomcat home directory environment variable
我目前正在编辑 server.xml 上下文路径,并希望有一个返回原始 webapps 目录的上下文路径。是否有内置的 tomcat 环境变量指向 tomcat 安装目录,如 TOMCAT_HOME 或其他?
正如评论中指出的那样,Tomcat 安装目录可用 ${catalina.home}
属性,而 Tomcat 实例根目录通过 ${catalina.base}
(参见Tomcat documentation)。例如。您可以使用 ${catalina.home}/webapps/manager
作为 Tomcat 管理器应用程序的位置。
但是我不会在 server.xml
中为 Tomcat 管理器和其他应用程序定义上下文:它们在其文件夹的 META-INF/context.xml
文件中有自己的上下文定义,因此它们可能不应该在 server.xml
中重新定义:这样您可以丢失一些重要的配置属性(例如 Tomcat 管理器的 privileged="true"
)。
更好的解决方案是将这些定义复制到 conf/Catalina/localhost/<appname>.xml
并添加 docBase="${catalina.home}/webapps/<appname>
属性。例如。对于 Tomcat 管理器,您应该创建一个名为 conf/Catalina/localhost/manager.xml
的文件,内容为:
<Context docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
我目前正在编辑 server.xml 上下文路径,并希望有一个返回原始 webapps 目录的上下文路径。是否有内置的 tomcat 环境变量指向 tomcat 安装目录,如 TOMCAT_HOME 或其他?
正如评论中指出的那样,Tomcat 安装目录可用 ${catalina.home}
属性,而 Tomcat 实例根目录通过 ${catalina.base}
(参见Tomcat documentation)。例如。您可以使用 ${catalina.home}/webapps/manager
作为 Tomcat 管理器应用程序的位置。
但是我不会在 server.xml
中为 Tomcat 管理器和其他应用程序定义上下文:它们在其文件夹的 META-INF/context.xml
文件中有自己的上下文定义,因此它们可能不应该在 server.xml
中重新定义:这样您可以丢失一些重要的配置属性(例如 Tomcat 管理器的 privileged="true"
)。
更好的解决方案是将这些定义复制到 conf/Catalina/localhost/<appname>.xml
并添加 docBase="${catalina.home}/webapps/<appname>
属性。例如。对于 Tomcat 管理器,您应该创建一个名为 conf/Catalina/localhost/manager.xml
的文件,内容为:
<Context docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>