一个Tomcat部署多个war包,并且访问时不需要加项目名称(奶妈式教程)

1.在tomcat目录下面多创建几个webapps文件夹,有几个war包就创建几个,webapps1、webapps2 名字自己定义
2.将多个war包分别扔进刚刚创建的webapps文件夹中,一个webapps中只扔一个war包
3.在tomcat目录下找到conf文件夹,找到server.xml并进行编辑。
4.部署第一个war包,在Host标签中添加Context节点,如下:

<Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps"(这是一个war包所在的文件夹名字)>
    <Context reloadable="true" debug="0" docBase="/usr/local/tomcat/apache-tomcat-8.5.65/webapps/webapps中的war包名称,不需要后缀(这里写你自己的war包路径)" path=""/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t "%r" %s %b" suffix=".txt" prefix="localhost_access_log" directory="logs"/>
</Host>

这样访问项目的时候就不需要添加项目名称了,直接192.168.xxx.xxx:8080/网页名  就可以访问

5.部署第二个war包,将xml中的Service标签复制,粘贴到Service标签下面与之同级。如下:

<Service name="Catalina2"(这里的那么要和上面区分开,不需要创建,部署完成后访问项目后,会自动生成)>
    <Connector port="8081(每次新增war包项目,这里的port不能和上面重复)" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>
    <Engine name="Catalina" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"         resourceName="UserDatabase"/>
        </Realm>
        <Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps2"(这里要和下方的docBase对应)>
            <Context reloadable="true" debug="0" docBase="/usr/local/tomcat/apache-tomcat-    8.5.65/webapps2/cs1"(这里是第二个war包的位置) path=""/>
            <Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t "%r" %s %b" suffix=".txt" prefix="localhost_access_log" directory="logs"/>
        </Host>
    </Engine>
</Service>

6.部署完成,重启tomcat(先关闭后开启)
进入tomcat目录中的bin目录,并执行语句:
./shutdown.sh(关闭命令)
./startup.sh(开启命令)
7.访问  ip:端口/页名
例如:
第一个war包:192.168.xx.xx:8080/login
第二个war包:192.168.xx.xx:8081/login
端口号则是server.xml文件中添加或修改的port

猜你喜欢

转载自blog.csdn.net/Hao1999_/article/details/116930825