2020-06-01 18:55:11 +02:00
|
|
|
<?xml version='1.0' encoding='utf-8'?>
|
|
|
|
<!--
|
|
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
|
|
this work for additional information regarding copyright ownership.
|
|
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
(the "License"); you may not use this file except in compliance with
|
|
|
|
the License. You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
-->
|
|
|
|
<!-- Note: A "Server" is not itself a "Container", so you may not
|
|
|
|
define subcomponents such as "Valves" at this level.
|
|
|
|
Documentation at /docs/config/server.html
|
|
|
|
-->
|
|
|
|
{% if tomcat_shutdown_port == -1 %}
|
|
|
|
<Server port="{{ tomcat_shutdown_port }}"
|
|
|
|
shutdown="TOMCAT_SHUTDOWN_DISABLED">
|
|
|
|
{% else %}
|
|
|
|
<Server port="{{ tomcat_shutdown_port }}" shutdown="{{ tomcat_shutdown_pwd }}">
|
|
|
|
{% endif %}
|
|
|
|
<!-- Security listener. Documentation at /docs/config/listeners.html
|
|
|
|
<Listener className="org.apache.catalina.security.SecurityListener" />
|
|
|
|
-->
|
|
|
|
<!--APR library loader. Documentation at /docs/apr.html -->
|
|
|
|
<!--
|
|
|
|
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
|
|
|
|
-->
|
2024-07-22 11:22:58 +02:00
|
|
|
{% if tomcat_version is version_compare (7, '<=') %}
|
2020-06-01 18:55:11 +02:00
|
|
|
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
|
|
|
|
<Listener className="org.apache.catalina.core.JasperListener" />
|
2022-10-13 17:15:39 +02:00
|
|
|
{% endif %}
|
2020-06-01 18:55:11 +02:00
|
|
|
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
|
|
|
|
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
|
|
|
|
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
|
|
|
|
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
|
|
|
|
|
|
|
|
<!-- Global JNDI resources
|
|
|
|
Documentation at /docs/jndi-resources-howto.html
|
|
|
|
-->
|
|
|
|
<GlobalNamingResources>
|
|
|
|
<!-- Editable user database that can also be used by
|
|
|
|
UserDatabaseRealm to authenticate users
|
|
|
|
-->
|
|
|
|
<Resource name="UserDatabase" auth="Container"
|
|
|
|
type="org.apache.catalina.UserDatabase"
|
|
|
|
description="User database that can be updated and saved"
|
|
|
|
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
|
|
|
|
pathname="conf/tomcat-users.xml" />
|
|
|
|
</GlobalNamingResources>
|
|
|
|
|
|
|
|
<!-- A "Service" is a collection of one or more "Connectors" that share
|
|
|
|
a single "Container" Note: A "Service" is not itself a "Container",
|
|
|
|
so you may not define subcomponents such as "Valves" at this level.
|
|
|
|
Documentation at /docs/config/service.html
|
|
|
|
-->
|
|
|
|
<Service name="Catalina">
|
|
|
|
|
|
|
|
{% if tomcat_http_enabled %}
|
|
|
|
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
|
|
|
|
<Executor name="tomcatThreadPool"
|
|
|
|
namePrefix="catalina-exec-"
|
|
|
|
maxQueueSize="{{ tomcat_max_queue_size | default(32767) }}"
|
|
|
|
maxThreads="{{ tomcat_max_threads }}"
|
|
|
|
minSpareThreads="10"/>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- A "Connector" represents an endpoint by which requests are received
|
|
|
|
and responses are returned. Documentation at :
|
|
|
|
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
|
|
|
|
Java AJP Connector: /docs/config/ajp.html
|
|
|
|
APR (HTTP/AJP) Connector: /docs/apr.html
|
|
|
|
Define a non-SSL HTTP/1.1 Connector on port 8080
|
|
|
|
-->
|
|
|
|
{% if tomcat_http_enabled %}
|
|
|
|
<!-- A http "Connector" using the shared thread pool-->
|
|
|
|
<Connector executor="tomcatThreadPool"
|
|
|
|
enableLookups="false"
|
|
|
|
maxQueueSize="{{ tomcat_max_queue_size | default(32767) }}"
|
|
|
|
maxThreads="{{ tomcat_max_threads }}" connectionTimeout="60000"
|
|
|
|
URIEncoding="UTF-8"
|
|
|
|
useBodyEncodingForURI="true"
|
|
|
|
bindOnInit="false" address="{{ tomcat_http_address }}"
|
|
|
|
port="{{ tomcat_http_port }}" protocol="HTTP/1.1"
|
|
|
|
maxPostSize="{{ tomcat_max_post_size | default(104857600) }}"
|
|
|
|
{% if tomcat_reverse_proxy_name_enabled %}
|
|
|
|
proxyName="{{ tomcat_reverse_proxy_name }}"
|
|
|
|
proxyPort="{{ tomcat_reverse_proxy_port }}"
|
|
|
|
{% endif %}
|
|
|
|
maxHttpHeaderSize="8192"
|
|
|
|
disableUploadTimeout="true"
|
|
|
|
/>
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
{% if tomcat_ajp_enabled %}
|
|
|
|
<!-- Define an AJP 1.3 Connector on port {{ tomcat_ajp_port }} -->
|
|
|
|
<Connector port="{{ tomcat_ajp_port }}" protocol="AJP/1.3"
|
|
|
|
enableLookups="false" address="{{ tomcat_ajp_address }}"
|
|
|
|
maxQueueSize="{{ tomcat_max_queue_size | default(32767) }}"
|
|
|
|
URIEncoding="UTF-8"
|
|
|
|
useBodyEncodingForURI="true"
|
|
|
|
maxThreads="{{ tomcat_max_threads }}"
|
|
|
|
connectionTimeout="60000"
|
|
|
|
maxPostSize="{{ tomcat_max_post_size | default(104857600) }}"
|
|
|
|
{% if tomcat_reverse_proxy_name_enabled %}
|
|
|
|
proxyName="{{ tomcat_reverse_proxy_name }}"
|
|
|
|
proxyPort="{{ tomcat_reverse_proxy_port }}"
|
|
|
|
{% endif %}
|
|
|
|
maxHttpHeaderSize="8192"
|
|
|
|
disableUploadTimeout="true"
|
|
|
|
bindOnInit="false" />
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- An Engine represents the entry point (within Catalina) that processes
|
|
|
|
every request. The Engine implementation for Tomcat stand alone
|
|
|
|
analyzes the HTTP headers included with the request, and passes them
|
|
|
|
on to the appropriate Host (virtual host).
|
|
|
|
Documentation at /docs/config/engine.html -->
|
|
|
|
|
|
|
|
<!-- You should set jvmRoute to support load-balancing via AJP ie :
|
|
|
|
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
|
|
|
|
-->
|
|
|
|
<Engine name="Catalina" defaultHost="localhost">
|
|
|
|
|
2021-02-15 15:12:34 +01:00
|
|
|
{% if tomcat_ajp_enabled %}
|
|
|
|
<!-- Automatically substitutes the IP with the one contained
|
|
|
|
in the x-forwarded-for header if that header is set -->
|
|
|
|
<Valve className="org.apache.catalina.valves.RemoteIpValve"
|
|
|
|
remoteIpHeader="X-Forwarded-For"
|
|
|
|
protocolHeader="X-Forwarded-Proto"
|
|
|
|
protocolHeaderHttpsValue="https"
|
|
|
|
/>
|
|
|
|
{% endif %}
|
|
|
|
|
2020-06-01 18:55:11 +02:00
|
|
|
<!--For clustering, please take a look at documentation at:
|
|
|
|
/docs/cluster-howto.html (simple how to)
|
|
|
|
/docs/config/cluster.html (reference documentation) -->
|
|
|
|
<!--
|
|
|
|
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
|
|
|
|
via a brute-force attack -->
|
|
|
|
<Realm className="org.apache.catalina.realm.LockOutRealm">
|
|
|
|
<!-- This Realm uses the UserDatabase configured in the global JNDI
|
|
|
|
resources under the key "UserDatabase". Any edits
|
|
|
|
that are performed against this UserDatabase are immediately
|
|
|
|
available for use by the Realm. -->
|
|
|
|
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
|
|
|
|
resourceName="UserDatabase"/>
|
|
|
|
</Realm>
|
|
|
|
|
|
|
|
<Host name="localhost" appBase="webapps"
|
|
|
|
unpackWARs="{{ tomcat_webapps_unpack }}" autoDeploy="{{ tomcat_webapps_autodeploy }}">
|
|
|
|
|
|
|
|
<!-- SingleSignOn valve, share authentication between web applications
|
|
|
|
Documentation at: /docs/config/valve.html -->
|
|
|
|
<!--
|
|
|
|
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
|
|
|
|
-->
|
|
|
|
|
|
|
|
{% if tomcat_access_log_enabled %}
|
|
|
|
<!-- Access log processes all example.
|
|
|
|
Documentation at: /docs/config/valve.html
|
|
|
|
Note: The pattern used is equivalent to using pattern="combined" -->
|
|
|
|
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
|
|
|
|
prefix="localhost_access." suffix="log"
|
|
|
|
{% if tomcat_direct_access %}
|
|
|
|
pattern="combined"
|
|
|
|
{% else %}
|
|
|
|
pattern="%t %{org.apache.catalina.AccessLog.RemoteAddr}r %{X-AUSERNAME}o %I %s "%r" %b %{User-Agent}i"
|
|
|
|
rotatable="False"
|
|
|
|
{% endif %}
|
|
|
|
/>
|
|
|
|
{% endif %}
|
|
|
|
</Host>
|
|
|
|
</Engine>
|
|
|
|
</Service>
|
|
|
|
</Server>
|