在实际业务需求中,负载均衡的VIP,不能跳转到带有项目名称的实际服务器上。
如果不带项目名,VIP可以成功跳转到实际服务器上。
我是这样处理的:
通过调整tomcat conf目录下的server.xml的
<Context path="/eda" docBase="/home/tomcat/apache-tomcat-8.5.11/webapps/eda" reloadable="false" allowLinking="true"></Context> 变为: <Context path="" docBase="/home/tomcat/apache-tomcat-8.5.11/webapps/eda" reloadable="false" allowLinking="true"></Context> docBase指定了该Web应用使用的WAR包路径,或应用目录。需要注意的是,在自动部署场景下(配置文件位于xmlBase中),docBase不在appBase目录中,才需要指定;如果docBase指定的WAR包或应用目录就在docBase中,则不需要指定,因为Tomcat会自动扫描appBase中的WAR包和应用目录,指定了反而会造成问题。 path指定了访问该Web应用的上下文路径,当请求到来时,Tomcat根据Web应用的 path属性与URI的匹配程度来选择Web应用处理相应请求。例如,Web应用app1的path属性是”/app1”,Web应用app2的path属性是”/app2”,那么请求/app1/index.html会交由app1来处理;而请求/app2/index.html会交由app2来处理。如果一个Context元素的path属性为””,那么这个Context是虚拟主机的默认Web应用;当请求的uri与所有的path都不匹配时,使用该默认Web应用来处理。
Context(表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范)
docBase |
应用程序的路径或者是WAR文件存放的路径 |
path |
表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** |
reloadable |
这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序 |