描述问题
springboot的项目是弄完了,就想放到网上看看效果,于是闲的没事搞了台阿里云windows版的服务器,配置完JAVA,安装好tomcat,就遇到项目绑定域名的问题。貌似现在通过tomcat去绑定域名是件很傻的事情。没有其他条件就尝试吧,遇到突出的问题:
1.绑定二级域名。
2.绑定好域名之后项目重复加载。
前置条件
在不绑定域名的情况项目可以启动tomcat并且通过localhost访问项目。
解决方案
先说绑定域名
在tomcat下的conf目录中我们可以看到server.xml文件。找到其中的片段,原文如下:
<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 "%r" %s %b" />
</Host>
其中name属性localhost替换为我们要绑定的域名如www.abc.com。其他不做任何的更改,启动tomcat这个时候访问项目路径是www.abc.com:8080/。
此时:tomcat不会多次加载项目。
当我们在上面的片段中加上标签的时候(网上好多都有,配置多级域名怎么滴)。正确的做法如下:
<Host name="a.abc.cn" appBase="webapps/taleblog" unpackWARs="true" autoDeploy="true">
<Alias>a.abc.cn</Alias>
<Context path="" docBase="C:\apache-tomcat-8.5.14\webapps\taleblog" debug="0" privileged="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" resolveHosts="false" />
</Host>
注意此时:需要将appBase具体到你的项目如webapps/blog而不是选用默认的值webapps.可不配置context标签,如果你硬要配置此标签,需要将docBase的值设置为项目的绝对路径。
以上内容放在前面即可。
最后端口的问题:
在server.xml文件中找到如下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将port=”8080”改为你需要的即可。常规设置为80.