Linux-tomcat常见配置详解
端口8005/tcp 安全配置管理
在conf/server.xml 有以下内容
<?xml version="1.0" encoding="UTF-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> </Host> </Engine> </Service> </Server>
8005是Tomcat的管理端口,默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个 字符串,tomcat接收到后就会关闭此Server。
- 此管理功能建议禁用,可将SHUTDOWN改为一串猜不出的字符串实现
- 或者port修改成 0, 会使用随机端口,如:36913
- port设为-1等无效端口,将关闭此功能
- 此行不能被注释,否则无法启动tomcat服务
<Server port="8005" shutdown="44ba3c71d57f494992641b258b965f28">
显示指定的http服务器版本信息
默认不显示tomcat的http的Server头信息, 可以指定tomcat的http的Server头信息为相应的值
#conf/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" Server="SOME STRING"/>
[root@centos7 ~]#curl -I 127.0.0.1:8080 HTTP/1.1 200 Content-Type: text/html;charset=UTF-8 Transfer-Encoding: chunked Date: Fri, 17 Jul 2020 08:32:52 GMT #修改配置,指定想显示的tomcat版本 [root@centos7 ~]#vim /usr/local/tomcat/conf/server.xml ...... <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" Server="WangServer"/> ...... [root@centos7 ~]#systemctl restart tomcat [root@centos7 ~]#curl 127.0.0.1:8080 -I HTTP/1.1 200 Content-Type: text/html;charset=UTF-8 Transfer-Encoding: chunked Date: Fri, 17 Jul 2020 08:34:17 GMT Server: WangServer
其它配置
conf/server.xml中可以配置service,connector, Engine,Host等
- service配置
一般情况下,一个Server实例配置一个Service,name属性相当于该Service的ID。
<Service name="Catalina">
- 连接器配置
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
redirectPort,如果访问HTTPS协议,自动转向这个连接器。但大多数时候,Tomcat并不会开启 HTTPS,因为Tomcat往往部署在内部,HTTPS性能较差
引擎配置
<Engine name="Catalina" defaultHost="localhost">
- defaultHost 配置
defaultHost指向内部定义某虚拟主机。缺省虚拟主机可以改动,默认localhost。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
多虚拟主机配置
多虚拟主机配置说明
- name 必须是主机名,用主机名来匹配
- appBase 当前主机的网页根目录,是相对于 $CATALINA_HOME ,也可以使用绝对路径
- unpackWARs 是否自动解压war格式
- autoDeploy 热部署,自动加载并运行应用
虚拟主机配置过程.
再添加和配置一个新的虚拟主机,并将myapp部署到/data/webapps目录下
vim conf/server.xml #在文件最后面增加下面内容 <Host name="web1.magedu.org" appBase="/data/webapps/" unpackWARs="True" autoDeploy="false"> #虚拟主机专有访问日志 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="web1_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> #以下行是自带的不需要修改 </Engine> </Service> </Server> #或者如果不加日志也可以用下面简化写法 <Host name="web1.magedu.org" appBase="/data/webapps/" unpackWARs="True" autoDeploy="false"/>
准备虚拟主机的数据目录
常见虚拟主机根目录 # mkdir /data/webapps/ROOT -pv # chown -R tomcat.tomcat /data/webapps # echo web1.magedu.org > /data/webapps/ROOT/index.html
测试
刚才在虚拟主机中主机名定义node1.magedu.org,所以需要主机在本机手动配置一个域名解析。 如果是windows,修改在C:\Windows\System32\drivers\etc下的hosts文件,需要管理员权限。