Windows :Tomcat部署服务笔记

整体环境介绍:

操作系统:WindowsServer 2019

JDK版本:java 8

Tomcat版本:tomcat 9

Tomcat路径:D:\Tomcat9\

1.部署单个服务

项目包路径:D:\Tomcat9\project\test-server\test.war

1.1修改server.xml文件配置

  • 删除tomcat默认服务配置信息(选作)
  • 配置服务信息(注意黄色部分):

<!--test-server port:12001 -->

   <Service name="Catalina">

    <Connector port="12001" protocol="HTTP/1.1"

               connectionTimeout="20000"

   URIEncoding="UTF-8"

               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">      

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

      <Host name="localhost"  appBase="project\test-server"

            unpackWARs="true" autoDeploy="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>

    </Engine>

  </Service>

PS:

<Service ></Service >标签必须在<Server></Server>标签中!!!

<!--test-server port:12001 -->:为注释内容

port="12001":设置服务端口号

URIEncoding="UTF-8" :设置服务编码方式

appBase="project\test-server" : 指定项目包路径

1.2把tomcat注册成windows服务

  • 设置JVM相关运行参数变量

进入tomcat的bin目录,在catalina.bat文件setlocal后添加如下信息:

set "JAVA_OPTS=%JAVA_OPTS% -Xms9024m -Xmx16240m -Xss512k -Dfile.encoding=UTF-8"

PS:

Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些

Xmx:java heap最大值,使用的最大内存

Xss:每个线程的Stack大小

Dfile.encoding:设置编码方式

  • 设置服务名称:

进入tomcat的bin目录,修改service.bat文件内容:

找到set SERVICE_NAME 把值修改为自己想要的名字

set SERVICE_NAME=team02_DeChang

  • 注册Windows服务

cmd管理员身份进入tomcat的bin目录,运行如下指令:

service.bat install

运行成功后,会在Windows服务列表中注册一个服务名称为:team02_DeChang的windows服务(注意显示名称还是Tomcat 9

  • 配置Tomcat服务管理工具

复制原来的管理工具,并重命名为注册的服务名称(注册Windows服务时的名称,不是显示名称)

如下图所示:

把tomcat9.exe复制后重命名为:team02_DeChang.exe

把tomcat9w.exe复制后重命名为:team02_DeChangw.exe

  1. 配置管理工具(按需修改)

双击打开team02_DeChangw.exe文件

General页签中各字段描述如下:

Display name: 服务显示名称

Description:服务描述

Startup type:服务启动类型

一般来说在Java页签中只需设置编码方式和设置内存即可:

2.部署多个服务

2.1一个Tomcat部署多个服务

重点说一下server.xml文件配置,其余操作与单个部署一致。

如:有3个war包,分别为A.war、B.war、C.war。

A.war路径:D:\Tomcat9\project\A-server\A.war

B.war路径:D:\Tomcat9\project\B-server\B.war

C.war路径:D:\Tomcat9\project\C-server\C.war

Server.xml文件只需为每一个服务添加一对<Service>标签即可,如下所示:

<!--A-server port:10001 -->

   <Service name="Catalina">

    <Connector port="10001 " protocol="HTTP/1.1"

               connectionTimeout="20000"

   URIEncoding="UTF-8"

               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">      

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

      <Host name="localhost"  appBase="project\A-server"

            unpackWARs="true" autoDeploy="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>

    </Engine>

  </Service>

<!--B-server port:10002-->

   <Service name="Catalina">

    <Connector port="10002" protocol="HTTP/1.1"

               connectionTimeout="20000"

   URIEncoding="UTF-8"

               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">      

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

      <Host name="localhost"  appBase="project\B-server"

            unpackWARs="true" autoDeploy="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>

    </Engine>

  </Service>

<!--C-server port:10003-->

   <Service name="Catalina">

    <Connector port="10003" protocol="HTTP/1.1"

               connectionTimeout="20000"

   URIEncoding="UTF-8"

               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">      

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

      <Host name="localhost"  appBase="project\C-server"

            unpackWARs="true" autoDeploy="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>

    </Engine>

  </Service>

2.2多个服务部署在多个Tocmat上(一个服务对应一个Tomcat)

与部署和注册服务与单个部署一致,注意端口冲突即可

3.为服务配置Https协议

3.1创建Tomcat证书

使用JDK自带的keytool工具来生成证书。

找到本地的jdk安装路径,进入到bin文件夹,执行命令:

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\Office\Java\tomcat.keystore" 

命令说明:

命令执行成功后,则可以在相应的目录下查看生成的文件

3.2配置Tomcat服务器

修改server.xml文件
禁用APR监听器 + 切换为NIO协议

1.移除APR监听器:

注释或删除 <Listener className="org.apache.catalina.core.AprLifecycleListener"/>,避免Tomcat尝试加载APR:

<!-- 注释此行 -->
<!-- <Listener className="org.apache.catalina.core.AprLifecycleListener" /> -->

​2.修改Connector协议为NIO

将协议改为高性能的NIO模式,并显式启用SSL:

<Connector 
    port="8080" 
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="150" 
    SSLEnabled="true" 
    scheme="https" 
    secure="true"
    keystoreFile="D:\Office\Apache\apache-tomcat-9.0.102\conf\tomcat.keystore"  
    keystorePass="Phians123"
    sslProtocol="TLS"
    ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, 
             TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
             TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
             TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
             TLS_ECDHE_RSA_WITH_RC4_128_SHA,
             TLS_RSA_WITH_AES_128_CBC_SHA256,
             TLS_RSA_WITH_AES_128_CBC_SHA,
             TLS_RSA_WITH_AES_256_CBC_SHA256,
             TLS_RSA_WITH_AES_256_CBC_SHA,
             SSL_RSA_WITH_RC4_128_SHA"/>

属性说明:

属性说明
clientAuth如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。
keystorePass指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。
sslProtocol   指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
ciphers    指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。

修改完后,保存server.xml文件。

3.3验证

启动Tomcat,输入项目地址即可

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值