本文已参与「新人创作礼」活动,一起开启掘金创作之路。
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. 逻辑梳理
总体来说这些节点的逻辑关系如下图
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干货资讯,免费提供大量教程和工具下载。