tomcat进阶
一、tomcat
1.多域名访问测试
更改server.xml文件的<Host>,每一个域名或IP单独作为一个<Host></Host>标签。

核心就是name参数和appBase参数,name填写域名,name是localhost表示可以通过公网IP访问,appBase填写目录路径,注意目录路径下必须有ROOT目录,项目放在ROOT目录下。

当使用域名或IP访问时如果url后面不带目录,那么直接跳转到ROOT目录下。

注意更改默认的8080端口,改成80端口。

DNS解析,添加A记录,A记录可以将域名指向IP

测试ROOT下的index.html

images下的index.html

!!!注意
假如你的站点域名是www.abc.top,而你在DNS解析中添加了一个三级域名www.test1.abc.top,且在server.xml</Host>中设置name="www.abc.top",那么如果用户用三级域名www.test1.abc.top访问到的画面会是什么呢?
测试

www.abc.top访问到test01

用www.test1.abc.top访问到tomcat主页,但我并没有在server.xml中设置该三级域名,由此可见,本质上三级域名直接转发到IP,而不是转发到二级域名。
www.test1.abc.top并没有在tomcat配置文件中设置,但是DNS解析到www.test1.abc.top解析到域名的IP,转而直接访问IP的80端口,也就是tomcat主页。


2.多端口访问测试
在server.xml多添加一对<Service></Service>,注意更换端口即可。
3.tomcat-manager监控
tomcat-manager是tomcat自带的监控系统,更改~/conf/tomcat-user.xml
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<user username="tomcat" password="tomcat" roles="manager-script,manager-gui,manager-jmx"/>
<user username="both" password="123456" roles="tomcat,role1"/>
<user username="role1" password="123456" roles="role1"/>

在tomcat服务器的conf/Catalina/localhost/目录下创建一个manager.xml文件
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

webapps下是否有manager,如果没有,从别的tomcat中复制一个。

测试,浏览器输入http://IP:port/managers/status,弹出登录页面,用户名是tomcat,密码是tomcat如果显示403报错,需要~//webapps/manager/META_INF/context.xml去除对访问权限的设置,重启tomcat。
<Context antiResourceLocking="false" privileged="true" >
<!--注释这里,去除对访问权限的设置
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>