您当前的位置:首页 > 计算机 > 服务器 > Tomcat

让一个 Tomcat 支持不同域名访问不同项目的配置方法

时间:02-19来源:作者:点击数:

让一个 Tomcat 支持不同域名访问不同项目的配置方法

这里以部署两个项目 test1 和 test2 为例,部署到同一个 Tomcat 中,实现用两个域名 www.test1.com 和 www.test2.com 分别访问这两个项目。

方法很简单,只需修改 server.xml 文件即可,步骤如下。

1. 把 test1 项目的WAR包文件 test1.war 放到 Tomcat 的 webapps 目录下。

2. 在 Tomcat 目录下创建一个名为 “webapps2” 的目录(与 webapps 是同一级目录)。

譬如:

# pwd

/apache-tomcat-8.5.34

# ls

... webapps webapps2 ...

3. 把 test2 项目的WAR包文件 test2.war 放到 webapps2 目录下。

4. 编辑 server.xml 文件

先找到 <Host></Host> 标签:

...

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="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"

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

...

复制一份<Host></Host>放在原<Host></Host>后面(为了简洁,可以把注释部分删掉):

...

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="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"

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

...

用第1个 <Host></Host> 配置项目 test1 :

配置 “name” 属性为域名 “www.test1.com” ,还添加子标签<Context>并这样配置:<Context path="" docBase="../webapps/test1/"/> 。

<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="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"

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

 

<Context path="" docBase="../webapps/test1/"/>

</Host>

用第2个 <Host></Host> 配置项目 test2 :

配置 “name” 属性为域名 “www.test2.com” ,配置 “appBase” 属性为 "webapps2" ,并也要加子标签<Context>并配置:<Context path="" docBase="../webapps2/test2/"/> 。

<Host name="www.test2.com" appBase="webapps2" unpackWARs="true" autoDeploy="true">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

<Context path="" docBase="../webapps2/test2/"/>

</Host>

配置好后保存文件。

5. 重启 Tomcat 使配置生效

打开浏览器分别用不同域名访问项目,这样就实现了在一个 Tomcat 下用不同域名访问不同项目。如果要部署更多项目,操作同上,复制 <Host></Host> 标签,一个标签对应一个项目。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门