按照之前配置是可以正常运行,不过后来发现有个路径问题:
以redirect方式跳转页面,tomcat在url路径自动添加工程名。
当初是让host恢复到tomcat默认配置,让一个host主机加载所有工程,以便加载tomcat自带工程(root,manager...),这样势必会在redirect跳转时带有工程名区别各自项目,而forword不会。
具体解决方法:
1.修改代码,在redirect写完整路径,例如:http://...
2.修改tomcat虚拟主机配置
第一中方法,要修改所有redirect代码;
而路径一旦改变,则再次修改代码。显然不符合工程需求,则不采用。
第二种方法,改变tomcat配置,仅仅修改配置文件,采用:
添加虚拟主机方式
在webapps目录下新建tomcat目录,把tomcat自带工程(manager,docs,root。。)转移至tomcat目录。
server.xml找到engine元素,添加
<engine name="catalina" defaulthost="localhost"><host name="localhost" appbase="webapps/demo"><context docbase="." path="" />...</host><host name="tomcat.domain.com" appbase="webapps/tomcat"><context docbase="." path="" />...</host></engine>元素engine的defaulthost属性选择一个默认主机localhost
结合apache配置
balancermember http://127.0.0.1:8080/
这样默认访问路径可以是
127.0.0.1(apache host支持)
127.0.0.1:8080
或者
www.domain.com
把tomcat其他工程(manager.root,...)配置到第二个name=“tomcat.domain.com”的虚拟主机
属性name 值在本地可以随意域名,需要本地配置相应的dns支持,如果在远程用域名的话可能很麻烦,所以我做为网站二级域名xxx.domain.com
这样可以通过路径
xxx.domain.com:8080+工程名 访问tomcat目录下的所有工程(manager,root...)
这样,让tomcat管理与实际项目独立访问,并且可以得到监控。
如果你还在意安全问题:
tomcat管理工程所在的host配置下面代码
<context docbase="." path="" > <valve classname="org.apache.catalina.valves.remoteaddrvalve" allow="127.0.0.1" deny=""/></context>allow允许访问的ip地址,多个以逗号分隔
deny拒绝访问的ip地址,多个ip以逗号分隔
提示:文件路径可以用自己喜欢的方式配置,不一定我的这种方式。