windows服务器使用Tomcat发布Springboot的war包项目

2022-05-11 09:55:23 浏览数 (1)

windows服务器使用Tomcat发布Springboot的war包项目(页面使用thymeleaf模板)

1,开启服务器端口

你的项目如果是:8066端口,请在服务器平台开放端口8066规则

2,使用IDEA打包Springboot项目的war包(maven项目)

3,下载Tomcat

(1)Tomcat 8.x 下载地址:https://tomcat.apache.org/download-80.cgi

(2)Tomcat 9.x 下载地址:https://tomcat.apache.org/download-90.cgi

下载安装方式自行选择,个人建议: 如果是windows系统下载安装包后缀:.exe 如果是linux系统下载安装包后缀:.tar.gz

因为是windows系统,所以我下载了(.exe安装包),安装后就会自动添加进系统服务了

4,Tomcat的配置文件与war包配置文件

(1)因为项目是不前后端分离的,所以用到了:thymeleaf模板,配置如下:

代码语言:javascript复制
#===Springboot与页面交互(thymeleaf工具) 配置信息    begin===
#设置thymeleaf模板引擎的缓存,设置false为关闭,默认为true
#还得设置Edit Configurations 为update resources
spring.thymeleaf.cache=false
#是否检查模板位置是否存在。
spring.thymeleaf.check-template-location=true
#Content-Type值
spring.thymeleaf.servlet.content-type=text/html
#是否启用MVC Thymeleaf视图解析
spring.thymeleaf.enabled=true
#模板编码
spring.thymeleaf.encoding=utf-8
#模板类型
spring.thymeleaf.mode=HTML5
#在构建URL时预先查看名称的前缀
spring.thymeleaf.prefix=classpath:/web/
#在构建URL时添加到视图名称后的后缀(默认值:.html)
spring.thymeleaf.suffix=.html
spring.mvc.static-path-pattern=/static/**
#===Springboot与页面交互(thymeleaf工具) 配置信息    end===

(2)网页文件位置如下:

(3)修改Tomcat的server.xml配置文件,端口号改为:8066

代码语言:javascript复制
    <Connector port="8066" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

(4)修改Tomcat的server.xml配置文件,在:Host标签中添加,项目静态文件访问路径

代码语言:javascript复制
   <Context path="/static/" docBase="/abc/WEB-INF/classes/static/"></Context>

说明: a,/static/ :项目静态网页文件地址

b,/elec/WEB-INF/classes/static/:项目实际war包解决后,静态文件地址

c,这个时候,只能在服务器本地访问,现在需要开启外网IP地址访问我们的项目

开启外网IP访问,修改server.xml中的Host 标签的name里面的值 如果备案了域名,可以直接写域名

代码语言:javascript复制
    <Host name="14.215.177.39"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

注意,如果是使用nginx或者Apache做外网映射的 就不用添加:外网IP,直接使用:localhost

d,完整版server.xml如下

代码语言:javascript复制
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- Note:  A "Server" is not itself a "Container", so you may not
     define subcomponents such as "Valves" at this level.
     Documentation at /docs/config/server.html
 -->
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!-- APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <Service name="Catalina">

    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->


    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8066" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
         This connector uses the NIO implementation. The default
         SSLImplementation will depend on the presence of the APR/native
         library and the useOpenSSL attribute of the AprLifecycleListener.
         Either JSSE or OpenSSL style configuration may be used regardless of
         the SSLImplementation selected. JSSE style configuration is used below.
    -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
         This connector uses the APR/native implementation which always uses
         OpenSSL for TLS.
         Either JSSE or OpenSSL style configuration may be used. OpenSSL style
         configuration is used below.
    -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <!--
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />
    -->

    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">

      <!--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"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="14.215.177.39"  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" -->
			 
		<Context path="/static/" docBase="/abc/WEB-INF/classes/static/"></Context>

			 
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" 
               pattern="%h %l %u %t %r %s %b %D %{Cookie}i %{User-Agent}i %{a}r" 
               resolveHosts="false"/>

      </Host>
    </Engine>
  </Service>
</Server>

5,启动tomcat后,在浏览器输入如下

代码语言:javascript复制
	http://14.215.177.39:8066/abc/login  

就可以访问自己项目的登录地址啦

0 人点赞