`

Jetty访问静态资源Open Too Many Files

阅读更多
        Jetty 9.0.3 Open too many files 问题

1. Jetty9.0.3-20130506
2. 问题描述:
  Linux Open too many files. 使用Jetty的DefaultServlet访问静态资源时,每次执行lsof –c java| grep pid 命令发现打开的静态的资源都没有被关闭。虽然通过修改ulimit –n设定了每个进程允许打开的最大文件描述符。但是如果jetty的访问的资源文件一直不被关闭,则上述方式无疑是饮鸠止渴。
3. 问题解决:
   通过跟踪Jetty9.0.3 DefaultServlet访问静态资源的方式,发现如果资源被资源缓存器缓存的话,则不会关闭该资源文件,只能等缓存的中的文件数量超过设置的最大文件数量(maxCachedFiles)或者缓存的文件总大小(maxCacheSize)超过设置的文件总大小,才会根据访问时间将缓存中的文件关闭。

[url]conf/jetty/webdefault.xml [/url]
<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
    <init-param>
      <param-name>aliases</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>acceptRanges</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>dirAllowed</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>welcomeServlets</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>redirectWelcome</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>maxCacheSize</param-name>
      <param-value>256000000</param-value>
    </init-param>
    <init-param>
      <param-name>maxCachedFileSize</param-name>
      <param-value>200000000</param-value>
    </init-param>
    <init-param>
      <param-name>maxCachedFiles</param-name>
      <param-value>-2</param-value>
    </init-param>
    <init-param>
      <param-name>gzip</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>etags</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>useFileMappedBuffer</param-name>
      <param-value>true</param-value>
    </init-param>
    <!--
    <init-param>
      <param-name>resourceCache</param-name>
      <param-value>resourceCache</param-value>
    </init-param>
    -->
    <!--
    <init-param>
      <param-name>cacheControl</param-name>
      <param-value>max-age=3600,public</param-value>
    </init-param>
    -->
    <load-on-startup>0</load-on-startup>
  </servlet>
分享到:
评论

相关推荐

    jetty反相代理配置

    3. 运行和测试:启动Jetty服务器,然后通过访问`http://localhost:8080/proxy/`来测试反向代理。如果配置正确,客户端的请求会被转发到目标服务器,然后将响应返回给客户端。 在实际应用中,可能还需要考虑更多因素...

    jetty嵌入项目实战

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛用于开发、测试和部署Web应用程序。本实战项目旨在帮助初学者快速掌握Jetty的嵌入式使用方法,通过实例化和配置Jetty服务器,实现Web应用的快速...

    jetty启动器资源配置文件

    ### Jetty启动器资源配置文件详解 #### 一、概述 Jetty是一款开源的Servlet容器,由Eclipse基金会维护。它支持最新的Java EE标准,并且具备轻量级、高性能等特点,适用于开发测试环境以及生产环境中的Web应用...

    tomcate和jetty虚拟目录配置方法

    在Java Web开发中,Tomcat和Jetty是两种常见的应用服务器。它们都支持虚拟目录配置,使得我们可以将多个Web应用程序部署在同一服务器上,而无需更改全局服务器配置。虚拟目录允许我们为每个应用设置一个独立的URL...

    jetty-7.5 资源包

    Jetty 7.5 资源包是一个针对Java Servlet应用的轻量级服务器软件,其核心在于提供了一个高效、灵活且易于管理的环境来运行Web应用程序。Jetty以其小巧的体积、快速的启动时间和对现代Web技术的支持而受到开发者的...

    jetty 9.2.24

    jetty服务器,9.2版本适合java7+开发环境。 Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。 尽管网页服务器通常用来为人们呈现文档,但是Jetty通常在较大的软件框架中用于计算机与计算机之间的通信。 ...

    jetty 8及依赖包

    这些库是Jetty正常运行所必需的,它们提供了诸如会话管理、安全控制、静态资源服务等功能。 学习Jetty 8,你可以深入理解Web服务器的内部机制,包括线程模型、请求处理流程、以及如何利用Servlet和WebSocket构建...

    jetty各个版本下载

    Jetty提供了基本的安全管理功能,如角色基础的访问控制(RBAC)和SSL/TLS支持。但为了满足企业级应用的安全需求,通常需要结合其他安全框架,如Spring Security。 总之,Jetty作为一个强大的Web服务器和Servlet...

    jetty相关的全部jar包

    jetty-security-9.4.8.v20171121.jar,jetty-io-9.4.8.v20171121.jar,jetty-continuation-9.4.8.v20171121.jar,jetty-client-9.4.8.v20171121.jar,jetty-jmx-9.4.8.v20171121.jar,jetty-plus-9.4.8.v20171121....

    eclipse jetty插件安装(离线版)

    Eclipse Jetty插件是开发Java Web应用时非常实用的工具,它允许开发者在Eclipse集成开发环境中直接启动和测试Jetty服务器,而无需通过命令行或其他方式。本篇文章将详细讲解如何离线安装Eclipse Jetty插件,并介绍其...

    jetty所需jar包

    4. **jetty-servlets.jar**:除了基本的Servlet支持,Jetty还提供了一些预定义的Servlet实现,比如静态资源服务、WebSocket支持等。 5. **jetty-security.jar**:用于处理安全性和认证,包含Jaas登录服务、...

    Jetty 学习资料汇总

    2. **静态资源服务**:讲解Jetty如何高效地处理静态资源,如HTML、CSS和JavaScript文件。 3. **连接器(Connector)**:理解Jetty的不同连接器类型,如HTTP/1.1和HTTP/2,以及如何选择和配置。 4. **安全性**:...

    实战 Jetty--让你快速速学会jetty

    通常,将WAR包放置在Jetty的Webapps目录下,然后通过运行`java -jar start.jar`启动服务器,就可以访问到部署的应用。默认情况下,Jetty监听8080端口,WAR包的名称即为应用程序的Root Context。例如,如果WAR包名为...

    Jetty9 配置使用HTTPS证书

    配置Jetty9服务器使用HTTPS证书的过程涉及多个步骤,包括申请证书、转换证书格式、以及配置Jetty服务器本身。以下详细描述这些步骤。 首先,申请证书部分通常需要借助第三方服务商,如阿里云、腾讯云等,这些服务商...

    jetty 6 指南书

    - **静态部署**:将WAR或WEB-INF目录直接放入Jetty的webapps目录。 - **动态热部署**:如何在运行时更新应用而无需重启Jetty。 - **Servlet2.5新特性**:讨论Jetty对Servlet 2.5规范的支持。 6. **Handler详解**...

    Jetty配置支持https

    keytool -import -keystore "C:\Program Files\Java\jdk1.7.0_09\jre\lib\security\cacerts" -file dotuian.crt -alias dotuian ``` **命令解析:** - `keytool -import`: 将证书导入到信任库。 - `-keystore "C:\...

    jetty嵌入式服务器实例大全

    通过`WebAppContext`或`ResourceHandler`,可以设置静态资源目录,使得Jetty能够自动服务这些文件。这在快速搭建小型Web应用或者测试环境时非常方便。 2. **Servlet处理**: Jetty是Servlet规范的实现者,支持...

    jetty6.1.6-2

    9. **部署Web应用程序**:Jetty可以通过解压WAR文件或放置在特定目录下的静态文件来部署Web应用。 10. **连接器(Connectors)**:Jetty的连接器(如jetty-client.jar)负责网络通信,可以支持HTTP、HTTPS等多种...

    jetty.jar,jetty-sslengine.jar,jetty-util.jar

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛用于开发、测试和部署Web应用程序。在Java生态系统中,Jetty以其高效、稳定和灵活性而受到开发者们的青睐。这里我们主要讨论三个核心的Jetty组件...

    jetty-6.1.26.zip

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,与Tomcat相似,它为开发和部署Web应用程序提供了一种高效的选择。Jetty在设计上注重灵活性和可扩展性,使得它在处理HTTP协议、WebSocket协议以及部署各种...

Global site tag (gtag.js) - Google Analytics