端口8005/tcp 安全配置管理
- 8005是Tomcat的管理端口,默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个字符串,tomcat接收到后就会关闭此Server。
- 此管理功能建议禁用,可将SHUTDOWN改为一串猜不出的字符串实现或者port修改成 0, 会使用随机端口,如:36913
- port设为-1等无效端口,将关闭此功能
- 此行不能被注释,否则无法启动tomcat服务
/usr/local/apache-tomcat-8.5.100/conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
输入SHUTDOWN关闭tomcat
查看状态
关闭tomcat
再次查看状态
显示指定的http服务器版本信息
/usr/local/apache-tomcat-8.5.100/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000" Server="xf"/>
其他配置
conf/server.xml中可以配置service,connector, Engine,Host等
service
一般情况下,一个Server实例配置一个Service,name属性相当于该Service的ID
<Service name="Catalina">
连接器配置
redirectPort,如果访问HTTPS协议,自动转向这个连接器。但大多数时候,Tomcat并不会开启
HTTPS,因为Tomcat往往部署在内部,HTTPS性能较差
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000" Server="xf"/>
引擎配置
<Engine name="Catalina" defaultHost="localhost">
defaultHost 配置
defaultHost指向内部定义某虚拟主机。缺省虚拟主机可以改动,默认localhost。
<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true">
value配置
定义访问日志:org.apache.catalina.valves.AccessLogValve
定义访问控制:org.apache.catalina.valves.RemoteAddrValve
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="10\.0\.0\.\d+"/>
Context 配置
Context作用
- 路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
- 应用独立配置,例如单独配置应用日志、单独配置应用访问控制
字段说明
path:指的是访问的URL路径,如果path与appBase下面的子目录同名,context的docBase路径
优先更高
docBase:可以是磁盘文件的绝对路径,也可以是相对路径(相对于Host的appBase)
reloadable:true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。生产环境中,建议使用false来禁用
案例
前期准备
配置
cat /usr/local/apache-tomcat-8.5.100/conf/server.xml <Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Context path="/test" docBase="/data/app" reloadable="true" />
访问
多虚拟主机配置
- name 必须是主机名,用主机名来匹配
- appBase 当前主机的网页根目录,是相对于 $CATALINA_HOME ,也可以使用绝对路径
- unpackWARs 是否自动解压war格式
- autoDeploy 热部署,自动加载并运行应用
前期准备
mkdir -pv /data/webapps/ROOT
chown -R tomcat:tomcat /data/webapps/
echo "www.xxx.com" > /data/webapps/ROOT/index.htm
虚拟主机配置
vim /usr/local/apache-tomcat-8.5.100/conf/server.xml <Host name="www.xxx.com" appBase="/data/webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" />不加日志
<Host name="web1.magedu.org" appBase="/data/webapps/" unpackWARs="True"
autoDeploy="false"/>
重启
systemctl restart tomcat
systemctl status tomcat
访问
修改端口
虚拟主机配置
vim /usr/local/apache-tomcat-8.5.100/conf/server.xml <Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"/>
查看日志
tail -f /usr/local/tomcat/logs/catalina.out
修改service
[root@localhost ~]# cat /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/usr/local/apache-tomcat-8.5.100/conf/tomcat.conf
ExecStart=/usr/local/apache-tomcat-8.5.100/bin/startup.sh
ExecStop=/usr/local/apache-tomcat-8.5.100/bin/shutdown.sh
PrivateTmp=true
#User=tomcat 注释掉
#Group=tomcat 注释掉
[Install]
WantedBy=multi-user.target
重启
systemctl daemon-reload
systemctl restart tomcat.service
访问