Tomcat项目部署配置外网域名访问

346 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


Tomcat的访问配置在tomcat/conf/server.xml文件中配置,先打开该文件,按照下方说明配置文件。 找到Server节点,注意文件里很多注释的地方,可以使用notepad或者其他工具打开,比记事本好用多了。

**1. 配置Connector

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

protocol、connectionTimeout等属性在此就不多做赘述,我们关注port属性,这个就是外网访问的端口,http通常使用80端口,所以我们此处将8080修改为80。

2. 配置Engine

找到和Connector同级的Engine节点

	 <Engine name="Catalina" defaultHost="localhost">

将defaultHost的值(localhost)改为tomcat所在服务器的外网IP,例如182.83.65.41,这里要注意,如果是有多个网卡,则需要配置外网访问的那个网卡IP。

3. 为每个不同的域名配置Host节点

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

将name值(localhost)改为你的访问域名,比如www.hello.com, appBase属性是你存放项目的位置,其他属性请查阅tomcat相关书籍。

4. 在Host下配置访问的项目

<Context path="/someWeb" reloadable="true" docBase="someWeb"/>

path是访问的url地址,如果想访问域名的时候直接打开改项目,则改为path=“”,如果不改,则访问该项目时url为:www.hellow.com/someWeb,根据项…

5. 逻辑梳理

总体来说这些节点的逻辑关系如下图

image.png

connector:绑定通信端口

engine: 绑定IP地址

host: 从IP映射到具体的域名上

context: 配置uri具体访问的路径

一般情况下,暴露出一个外网IP,对应一个Engine,但host可能会有多个(二级域名等情况),并且Context节点也可能会有多个(配置不同的URI指定到某个具体的页面)

6. 配置多个域名访问项目

重复3-4部,为host修改不同的name值和配置不同的context即可。

7. 新的替代方案

由于Tomcat进行域名映射的局限性,现在已经逐渐使用Nginx来替代Tomcat实现域名映射等功能了,Tomcat只单纯的作为一个Web容器运行。

如果需要了解Nginx的配置,可以参考我的这篇文章

Java项目从开发到部署生产完整流程梳理


另外,有兴趣的小伙伴可以关注公众号【暴走的怪兽君】,常更新Java干货资讯,免费提供大量教程和工具下载。