前言
这次和大家来分享一下在windows server服务器下使用tomcat完成网站域名的部署,这次的网站是Vue打的压缩包进行部署,域名也是通过阿里云去直接购买的,在这里详细的从网站部署到域名配置进行总结。
网站部署
1.首先我们可以在本地将Vue打的压缩包进行解压然后传放到服务器中
2.将Vue项目放入服务器tomcat的webapps文件夹下
3.重启tomcat这样就完成了一个Vue项目服务器部署的过程
阿里云域名解析
1.首先打开控制台,点击我们购买的域名,进入域名设置
2.在这里也不需要特别复杂的操作,直接点击新手引导进行配置就好的,输入我们服务器的IP地址,就可以完成主域名的配置
服务器部署
服务器这里我们通过对tomcat中conf文件夹中的server.xml文件进行配置,这里我们需要改两个地方,并添加项目路径,这里为了方便大家寻找,就把上面和下面的都找出来的。
1.修改Engine标签
这里将defaultHost内容修改为购买的域名
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="www.taobao.com">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
2.修改Host标签
这里在Host将name的内容localhost改为域名
<Host name="www.taobao.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!--<Context path="/upload" docBase="D:\img" reloadable="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" />
3.添加context
在Host标签内加入Context,如果出现加入Context后tomcat启动闪退的情况可能因为tomcat版本的不同,将Context改为context就好的,没错,就是首字母小写,然后path指向域名的链接,docBase指向webapps文件夹下的项目名,这里我们想直接通过域名访问,就将path设置为空,指向的是dist项目
<Context path=""
docBase="dist"
debug="0"
reloadable="true"
crossContext="true"/>
4.修改tomcat8080端口为80,这样我们可以通过任意80的端口都可以指向tomcat
总结
这样就完成了Vue项目部署到域名配置到windows server服务器部署的整个过程,这里对Host标签进行一下解读,这里我们把注释都删除掉
<Host name="www.taobao.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path=""
docBase="dist"
debug="0"
reloadable="true"
crossContext="true"/>
<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指向的是这个域名,当我们通过在阿里云控制台的解析后,我们使用IP地址和域名都可以对服务器中的项目进行访问,这里拿tomcat举例,我们通过IP:8080可以进入我们的tomcat主页,解析后,通过域名:8080同样可以进入tomcat主页。
path和docBase的作用,一个是域名的指向一个是项目的指向,简单的来讲,假如我们的域名是www.taobao.com的话,我们进行一个设置path="/text" docBase=“text”,这句话的意思就是当我们使用www.taobao.com/text的时候,我们会根据docBase指向appBase中的webapps文件夹中的text项目,根据conf文件夹下的web.xml中的配置,去展示text项目中的index.html主页。所以这个地方我们的path配置是空的,就可直接通过域名去访问项目,这样的配置就可以通过www.taobao.com的域名直接访问tomcat中的dist的项目注意,webapps文件夹下的dist项目包下,一定要有名为index.html主页
相对于来说Vue项目的部署及域名部署外,最难的就是对tomcat中的server.xml文件的部署,要注意大小写,遇到问题一定要先排除一下server.xml文件的部署的正确性
如果说部署完成,通过域名进行访问,访问到的地址是域名/#/,这个对于Vue项目来说是正常的,所以不必急于解决这个问题