工作背景:linux服务器上已有一个tomcat,也有了项目1,通过域名+项目1名称访问页面。
工作要求:现在需要直接输入域名,跳转项目1指定的一个页面。同时输入域名+项目1名称照样可以访问原来的项目功能。
工作计划:新建一个web项目2,里面的默认页面index.html加载之前直接跳转指定的项目1页面。
工作步骤:
一、创建web项目2,修改web.xml,修改index.html页面,让其加载时就跳转指定页面。
二、linux服务器上,在tomcat里把项目1所在的webapps复制一遍,变成webapps1,webapps1里面只保留ROOT文件夹,然后把自己的项目2的文件夹移入进去。
三、最重要的一步,修改tomcat的server.xml文件。
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="/opt/apache-tomcat-8.5.39/webapps1/nts2" path="" reloadable="true" />
</Host>
在我们不知道服务器域名对应的DNS解析在哪里配置的时候,尽量不动原来的端口号,直接在Host标签下面新增一条Context,就是倒数第二行的代码,这边各个参数解析还是百度下,我这里的理解是,在这个端口下,输入了域名,后面path为空的时候,他就给你跳转到nts2这个项目,然后走的就是nts2的默认index.html。
四、重启tomcat,然后去测试一波,我这里是完成了,实现了要求。
最后总结
因为之前测试很多次,怎么去实现这个要求,自己也在本地建了新的web项目2,然后测试过新建一个端口来部署nts2
<Service name="Catalina">
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" URIEncoding="UTF-8"
enableLookups="false"
acceptCount="500"
connectionTimeout="5000"
disableUploadTimeout="true" maxThreads="1500" maxSpareThreads="50" minSpareThreads="25"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<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" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/data/java/appstore-api" path="/" reloadable="false" />
</Host>
</Engine>
</Service>
<Service name="web">
<Connector port="8088" protocol="HTTP/1.1" maxThreads="700" acceptCount="100" connectionTimeout="2000" redirectPort="8445" URIEncoding="UTF-8"/>
<Engine name="web" defaultHost="localhost">
<Host name="localhost" appBase="webapp1">
<Context docBase="/data/java/appstore-web" path="" reloadable="true" />
</Host>
</Engine>
</Service>
<Service name="web2">
<Connector port="8089" protocol="HTTP/1.1" maxThreads="700" acceptCount="100" connectionTimeout="2000" redirectPort="8445" URIEncoding="UTF-8"/>
<Engine name="web2" defaultHost="localhost">
<Host name="localhost" appBase="webapp2">
<Context docBase="/data/java/appstore-web2" path="" reloadable="true" />
</Host>
</Engine>
</Service>
就像这样,也是修改server.xml文件,主要是把里面的service标签那一段给复制一遍,然后修改一下端口号,一共两处,一处是一开始的8080那里,一处是8009那里改一下,然后的context标签就照葫芦画瓢,修修改改。重启tomcat,就可以开始测试了。我这里本来项目的8081,新项目的8082,都可以正常访问
第一次写博客,账号开了蛮久的,但是就是没写过,今天这个是比较重要,自己也准备记录下来,写的不好,见谅