tomcat 配置参考

1 删除默认目录和修改tomacat-users.xml
安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件 rm -rf /srv/apache-tomcat/webapps/*
注释conf/tomacat-users.xml 含有用户名、角色以及密码的清单文件
这里写图片描述

2 禁止列目录
Tomcat的设置中禁止列目录。conf/web.xml下

<init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
</init-param>

确认是false而不是true。

3 关闭war自动部署
conf/server.xml host标签关闭war自动部署unpackWARs=”false” autoDeploy=”false”。
防止被植入木马等恶意程序

4 修改或隐藏默认Tomcat的版本信息
在lib/catalina.jar 里依次路径找到\org\apache\catalina\util\ServerInfo.properties

server.info=Apache Tomcat/7.0.42
server.number=7.0.42.0
server.built=Jul 2 2013 08:57:41

改成

server.info=Neo App Srv 1.0
server.number=0.0.0.0
server.built=Mar 9 2018 13:49:01 UTC

5 管理AJP端口
AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。由于我们公司前端是由nginx做的反向代理,因此不使用此连接器,因此需要注销掉该连接器。

<!--
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->

6 更改关闭 Tomcat 实例的指令
server.xml中定义了可以直接关闭 Tomcat 实例的管理端口。我们通过 telnet 连接上该端口之后,输入 SHUTDOWN (此为默认关闭指令)即可关闭 Tomcat 实例(注意,此时虽然实例关闭了,但是进程还是存在的)。由于默认关闭 Tomcat 的端口和指令都很简单。默认端口为8005,指令为SHUTDOWN 。因此我们需要将关闭指令修改复杂一点。 当然,在新版的 Tomcat 中该端口仅监听在127.0.0.1上,因此大家也不必担心。除非黑客登陆到tomcat本机去执行关闭操作。
修改实例:

<Server port="8005" shutdown="9SDKJ29jksjf23sjf0LSDF92JKS9DKkjsd">

或者:
这种情况 ./shutdown 命令无法使用

<Server port="-1" shutdown="9SDKJ29jksjf23sjf0LSDF92JKS9DKkjsd">

7 更改 Tomcat 的服务监听端口
一般公司的 Tomcat 都是放在内网的,因此我们针对 Tomcat 服务的监听地址都是内网地址。

<Connector port="8080" address="127.0.0.1" />

8 访问限制

<Host name="localhost"  appBase="/data/www/tomcat_webapps"   unpackWARs="true" autoDeploy="false">
   <Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="192.168.1.10,192.168.1.30,192.168.2.*" deny=""/>  
   <Valve className="org.apache.catalina.valves.RemoteHostValve"  allow="www.test.com,*.test.com" deny=""/>
</Host>

只能域名访问

<Host name="www.test.com"  appBase="/data/www/tomcat_webapps"   unpackWARs="true" autoDeploy="false">deny=""/>
</Host>

个别属性的优化配置:

 <Connector port="8080" address="127.0.0.1"
               protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000"
               redirectPort="8443"
               useBodyEncodingForURI="true"
               URIEncoding="UTF-8" 
               enableLookups="false"
               SSLEnabled="false"
               server="Neo App Srv 1.0"/>

猜你喜欢

转载自blog.csdn.net/u012903926/article/details/79614782