tomcat配置多域名访问多项目

1、两个项目,第一个为Apache-tomcat的默认项目ROOT,第二个项目名为applet。

2、修改tomcat的server.xml文件,原来的代码如下,其中Host标签的appBase表示这个目录下面的子目录将自动被部署为应用。name为访问项目的默认域名/IP(localhost就是127.0.0.1)。

注:在未部署任何项目时,Engine标签里面的Host标签如上图所示;而一般正常部署项目后如下图所示,明显多了一个Context标签,docBase属性指的是项目在磁盘中的绝对位置,path属性指的是在访问该项目时,域名/IP后需要加上的项目名(如path=""则不需要加上项目名访问)。

3、由此可见,我们配置多域名/IP访问多项目,添加多个Host标签即可,添加后代码如下:

注:上图绿色箭头,分别指出了不同之处;第一个Host指明了域名www.t2.com访问的是webapps下面的ROOT项目(appBase="webapps/ROOT"),其中ROOT项目在docBase位置下(docBase="D:\..."),域名后面加上/ROOT访问(path="ROOT"),就是www.t2.com:8080/ROOT;同理,第二个虚拟主机通过www.t1.com:8080/applet访问。(由于本人比较懒,借用ROOT项目,也没有修改端口,大家可以自己配置其他项目试试)。

4、域名是通过修改hosts文件配置的。

5、启动项目后如下两图所示,大家也可以将Context标签path属性设置为path="",就不用加上项目名访问,将端口改为80的话,就不用加上端口访问了,前提是80端口未被占用。

图1:

图2:

6、服务器配置单应用,将端口改为80,在默认Host标签里增加一个Context标签(如下我的Context标签),再将Host的name属性设置为域名,其他东西不变,这样就能直接通过域名访问你发布的项目了;如果不配置Context标签指向自己的项目,则会访问tomcat默认项目ROOT。

<Context docBase="/usr/local/tomcat/apache-tomcat-9.0.7/webapps/applet" path="" reloadable="true" />

7、标签相关,server.xml文件是由Server->Service->Engine->Host->Context组成的四层结构。

Service:一组 Engine 的集合,包括线程池 Executor 和连接器 Connector 的定义。
Engine:一组虚拟主机的集合。
Host:即虚拟主机(所谓的”一个虚拟主机”可简单理解为”一个网站”)。
Context: 即 Web 应用程序,一个 Context 即对于一个 Web 应用程序。


猜你喜欢

转载自blog.csdn.net/qq_32625839/article/details/80015738