<?xml version='1.0' encoding='utf-8'?>
<!--
https://tomcat.apache.org/tomcat-7.0-doc/config/server.html
port:指定一个端口,这个端口负责监听关闭Tomcat的请求
shutdown端口是写在Server参数里的,直接去掉是不管用,也是会默认启动的,一般在安全设置时候建议把端口设置为-1可禁用关闭端口。,shutdown修改为其他复杂字串。
shutdown:向以上端口发送的关闭服务器的命令字符串,见上
-->
<Server port="-1" shutdown="clySHUTDOWNtc">
<!--监听器-->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<!--
https://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html
tomcat默认
-->
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Service name="Catalina">
<!--
https://tomcat.apache.org/tomcat-7.0-doc/config/http.html
Tomcat连接器
port:端口号
protocol:协议
connectionTimeout:连接超时时间(单位毫秒)
server:覆盖http响应的Server标头
redirectPort:如果使用https://来访问这个8080端口,就会重定向到8443这个端口,8443也得有对应的连接器,否则转发不过去
URIEncoding:在%xx解码URL之后,这指定用于解码URI字节的字符编码。 如果未指定,将使用ISO-8859-1
compression:连接器可能会使用HTTP / 1.1 GZIP压缩,以节省服务器带宽。 该参数的可接受值为“ off”(禁用压缩),“ on”(允许压缩,这将导致压缩文本数据),“ force”(在所有情况下均强制压缩)或数字整数值(即 等效于“ on”,但指定压缩输出之前的最小数据量。
compressableMimeType:该值是逗号分隔的MIME类型列表,可以对其使用HTTP压缩。
secure:如果您希望调用request.isSecure()以对此连接器收到的请求返回true,则将此属性设置为true。默认false
maxPostSize:器FORM URL参数解析将处理的POST的最大大小(以字节为单位)。 可以通过将此属性设置为小于零的值来禁用该限制。 如果未指定,则此属性设置为2097152(2兆字节)。 请注意,FailedRequestFilter可用于拒绝超过此限制的请求。
-->
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000" server="cly-web-server"
redirectPort="8443" URIEncoding="UTF-8"
compression="on" compressableMimeType="text/html,text/xml,text/plain"
secure="true" maxPostSize="-1"/>
<!--
name:对应$CATALINA_HOME/config/Catalina 中的 Catalina ;
defaultHost:默认主机名,它标识将处理定向到此服务器上主机名的请求但未在此配置文件中配置的主机。 此名称必须与嵌套在其中的Host元素之一的名称属性匹配
-->
<Engine name="Catalina" defaultHost="localhost">
<!--
https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
remoteIpHeader:声明HEADER的key值,对应key的存储value值为从请求客户端开始经过的所有IP地址列表(IP间以英文逗号分隔)
protocolHeader:X-Remote-Addr :代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,
当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)
就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,
然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP。
X-Forwarded-For:正如上面所述,当你使用了代理时,web服务器就不知道你的真实IP了,
为了避免这个情况,代理服务器通常会增加一个叫做x_forwarded_for的头信息,把连接它的客户端IP
(即你的上网机器IP)加到这个头信息里,这样就能保证网站的web服务器能获取到真实IP
proxiesHeader:声明HEADER的key值,对应key的存储value值为从请求客户端开始经过的内部代理的IP地址列表(IP间以英文逗号分隔)。
经过tomcat时,由tomcat根据remoteIpHeader、、对HEADER进行复制。不保证包括所有内部代理的IP列表
protocolHeaderHttpsValue:当protocolHeader字段的值为protocolHeaderHttpsValue的https的时候,认为是安全连接,否则就是http的非安全连接。
internalProxies:线上为了安全也会配置这个,表示TOMCAT仅接受某些IP或者IP段过来的请求,支持正则表达式
-->
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Remote-Addr"
protocolHeader="X-Request-Protocol"
protocolHeaderHttpsValue="https"/>
<!--
https://tomcat.apache.org/tomcat-7.0-doc/config/realm.html
tomcat默认
-->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--
className:AccessLogValve可以创建与Web服务器创建的标准格式相同的访问日志,也可以创建任意数量的自定义格式
directory:AccessLogValve产生的Access Log文件存放目录的绝对路径或者相对路径。如果是相对路径,那么是相对$CATALINA_HOME的。如果没有指定这个参数,默认值是"logs"(相对$CATALINA_HOME)。
pattern:用于指定展示在Access Log中的各种request和response的信息字段的格式,也可以使用单词common或者combined来选择一种标准的日志形式。
注意优化的access只支持common和combined格式。
pattern =“ common”对应于'%h%l%u%t“%r”%s%b'定义的通用日志格式。
pattern =“ combined”将Referer和User-Agent标头的值都用双引号附加到通用模式。
prefix:在每个日志文件名的开头添加前缀。 如果未指定,则默认值为“ access_log”。
suffix:后缀添加到每个日志文件名称的末尾。 如果未指定,则默认值为“”(长度为零的字符串),表示将不添加后缀
fileDateFormat:日志文件名中允许自定义时间格式。 只要格式化的时间戳更改,文件名就会改变。 默认值为yyyy-MM-dd。 如果希望每小时生成一个文件,则将此值设置为yyyy-MM-dd.HH。 日期格式将始终使用语言环境en_US进行本地化。
-->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="hello_access." suffix=".log" fileDateFormat="yyyy-MM-dd" pattern="combined"/>
<!--Alias: 别名-->
<Alias>cly.moe</Alias>
<Alias>chenly.me</Alias>
</Host>
</Engine>
</Service>
</Server>
请注意,本文编写于 1378 天前,最后修改于 1378 天前,其中某些信息可能已经过时。