【容器】CentOS7.2下安装和使用jetty-9.4.0

缘起

一直使用tomcat做容器。但最近玩了玩spring boot,看到内部集成的jetty蛮好玩,然后来自己搭建个jetty。通过配置和使用,目的也是为了让自己掌握另一种容器,以后方便为业务迁移微服务来服务吧。

准备

A: 下载资源 选择最新的tgz包。
B: 准备好centOS服务器。
C : yum自己喜欢的编辑器。我是用vim。

步骤

一,在自定义的路径下面下载,并改名。

wget http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.0.v20161208/jetty-distribution-9.4.0.v20161208.tar.gz

mv jetty-distribution-9.4.0.v20161208 jetty-9.4.0

二,最简操作。
进入到bin中,然后发现有jetty.sh,然后启动:

cd /usr/local/jetty/jetty-9.4.0/bin
./jetty.sh start

就可以打开界面了。
启动的是一个空项目。

Error 404 - Not Found.

No context on this server matched or handled this request.
Contexts known to this server are:
 Powered by Jetty:// 9.4.0.v20161208

三,初探jetty.xml。

第一部分 连接池配置

    "threadpool"><New id="threadpool" class="org.eclipse.jetty.util.thread.QueuedThreadPool"/>
    -->
    <Get name="ThreadPool">
      <Set name="minThreads" type="int"><Property name="jetty.threadPool.minThreads" deprecated="threads.min" default="10"/>Set>
      <Set name="maxThreads" type="int"><Property name="jetty.threadPool.maxThreads" deprecated="threads.max" default="200"/>Set>
      <Set name="idleTimeout" type="int"><Property name="jetty.threadPool.idleTimeout" deprecated="threads.timeout" default="60000"/>Set>
      <Set name="detailedDump">falseSet>
    Get>

相关的调优可以这里着手。

第二部分 针对https的配置

 <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
      <Set name="secureScheme"><Property name="jetty.httpConfig.secureScheme" default="https" />Set>
      <Set name="securePort"><Property name="jetty.httpConfig.securePort" deprecated="jetty.secure.port" default="8443" />Set>

当然,我们一般不会再容器里面配置https。

第三部分 针对输入输出流和http访问头相关设置

 <Set name="outputBufferSize"><Property name="jetty.httpConfig.outputBufferSize" deprecated="jetty.output.buffer.size" default="32768" />Set>
      <Set name="outputAggregationSize"><Property name="jetty.httpConfig.outputAggregationSize" deprecated="jetty.output.aggregation.size" default="8192" />Set>
      <Set name="requestHeaderSize"><Property name="jetty.httpConfig.requestHeaderSize" deprecated="jetty.request.header.size" default="8192" />Set>
      <Set name="responseHeaderSize"><Property name="jetty.httpConfig.responseHeaderSize" deprecated="jetty.response.header.size" default="8192" />Set>
      <Set name="sendServerVersion"><Property name="jetty.httpConfig.sendServerVersion" deprecated="jetty.send.server.version" default="true" />Set>
      <Set name="sendDateHeader"><Property name="jetty.httpConfig.sendDateHeader" deprecated="jetty.send.date.header" default="false" />Set>
      <Set name="headerCacheSize"><Property name="jetty.httpConfig.headerCacheSize" default="512" />Set>

对流的控制,可以在这里调优。

第四部分 额外服务设置

<Set name="stopAtShutdown"><Property name="jetty.server.stopAtShutdown" default="true"/>Set>
    <Set name="stopTimeout"><Property name="jetty.server.stopTimeout" default="5000"/>Set>
    <Set name="dumpAfterStart"><Property name="jetty.server.dumpAfterStart" deprecated="jetty.dump.start" default="false"/>Set>
    <Set name="dumpBeforeStop"><Property name="jetty.server.dumpBeforeStop" deprecated="jetty.dump.stop" default="false"/>Set>

主要是对于服务停止后关闭设置,和过期相关的设置。

四,当然,在整个配置路径下,也可以看到一些熟悉的面孔,如gzip的压缩配置等,感觉如果玩过tomcat优化的同学,应该不会陌生。

五,对于基本需求,比如改端口这种事情,不可避免。但是似乎9.4.0对配置文件有过更新。原本在jetty.xml进行配置就可以搞定,但是最新版本看说明文字。

   
    
    
    
    
    
    
    
    
    
    
    
    
    
    

说的比较清楚,如果该文件中没有的内容,到jetty-http或者https中进行设置。

因此,我们找到jetty-http.xml。
可以看到该处已经有对host和默认端口8080的设置。

      <Set name="host"><Property name="jetty.http.host" deprecated="jetty.host" />Set>
        <Set name="port"><Property name="jetty.http.port" deprecated="jetty.port" default="8080" />Set>

这里进行变更,然后重新启动即可。

你可能感兴趣的:(技术管理)