tomcat配置域名解析,亲测
前情提要:准备用阿里云上的 tomcat 部署项目,需要配置tomcat的域名解析,以达到直接输入域名访问项目的目的
首先,让用户输入8080端口显然不合理,因此需要改8080端口为 http 默认80端口。
编辑 tomcat 目录下的 conf 文件夹中的 server.xml
,可以先备份以备不时之需
<!--原本这里为 8080-->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
然后配置 <host>
标签,具体标签意义内容参考:配置多域名访问同一应用/不同应用以及其它配置 一文
我这里注释掉了原本的本地 localhost 的<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" />
-->
<!--
<Context docBase="" reloadable="" />
-->
<!-- 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 "%r" %s %b" />
</Host>-->
<!--自己添加的标签,配置域名解析-->
<Host name="www.qinghejiaoyu.net" appBase="webapps"
unpackWARs="true" autoDeploy="true" xmlValidation="" xmlNamespaceAware="">
<!--配置默认打开项目-->
<Context docBase="/usr/local/tomcat/apache-tomcat-8.5.55/newwebapps/QingHeWeb" path="" debug="0" reloadable="true" />
<Value className="org.apache.catalina.valves.AccessLogValue" directory="logs"
prefix="qinghejiaoyu.net_access_log." suffix=".txt"
pattern="%h %l %u %c "%r" %s %b" />
</Host>
这里说几个最重要的配置:
- name:要配置的域名
- appBase:加载文件夹,默认为webapps,不用修改
- docBase:项目所在的目录,我这里的项目不在webapps下
- path:输入url 的后缀,为空则表示不加后缀。我这里直接访问 www.qinghejiaoyu.net 即可访问,如果设置
path=”abc“
,则需要访问 www.qinghejiaoyu.net/abc 才可以 - reloadable:在部署以后动态的查看更新并重载,建议测试时设为true,正式上线后设为false
- 其余按上述即可
注意,这里的path一定不能省略,即使你像我一样写为空。如果path属性没写,则会默认访问ROOT的tomcat欢迎页面,不会访问项目页面!!
笔者就是因为没写 path 属性找了半天的问题。
至于 <Engine>
标签中的属性可以不修改,修改了 <host>
即可
<!--没有改动defaultHost 修改其下的host即可-->
<Engine name="Catalina" defaultHost="localhost">
以上,重启tomcat服务即可