有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java清理突堤清除“不必要”的东西

我习惯于使用Jetty作为我的web容器

我在安装步骤中所做的是获取原始tar球,并从中清理一些目录和文件

我想在这里提出的是:

What are you used to remove from Jetty to use on production/staging enviroments?

我对默认jetty软件包所做的更改:

  • 删除
    • 自述。文本
    • 波姆。xml
    • javadoc/
    • 示例/
    • /网络应用/测试*
    • /上下文/测试*
    • /项目网站
    • /参考资料/log4j。性质
  • 创建
    • 工作/

问题:

  • 我没有违规,对吧
  • 这样做是否会给我的系统带来任何缺点(性能/稳定性)
  • 有人在jetty上定制了比这更多的东西吗
  • 评论
  • 有问题吗
  • 小费

相关帖子:


共 (3) 个答案

  1. # 1 楼答案

    I'm not breaking any license right?

    Can I bring any drawback for my system (performance/stability) doing that?

    唯一的缺点是Log4J属性文件对于控制日志记录的执行量(或执行量)非常有用。完全禁用日志记录会导致日志文件变小,从而节省磁盘空间。(TB驱动器不应成为问题。)如果找不到日志属性文件,应用程序可能默认为DEBUGINFO级别,而不是ERROR级别。因此,Log4J有助于告诉所有应用程序只记录关键信息

    消除无关的示例(测试套件)通过公开更少的系统信息来加强安全性。它还可以节省一些内存,因为测试webapps无法加载到内存中

    Does anyone customize more than this on jetty?

    您可以按如下方式清理webapps目录:

    cd /opt/jetty
    rm -rf webapps
    mkdir -p webapps/root
    echo "<html><body></body></html>" > webapps/root/index.html
    

    重新启动码头

  2. # 2 楼答案

    在过去,我经常通过删掉所有我不使用的框架来修剪Jetty。这也让我减少了所有依赖性jar。一旦我把它修剪成我用过的最基本的东西,它就很小了。然后我用onejar重新打包,这样就可以执行单个文件传输了。我已经很久没有管理过任何大规模的应用程序集群了,所以可能有更好的方法来达到同样的目的我想到了云计算,但我在这方面做得不多,但如果我今天面临同样的挑战,我会首先考虑这一点

    加上带宽和磁盘现在便宜多了,所以在我看来,随着时间的推移,问题变得越来越小

  3. # 3 楼答案

    这里有一种清理码头的方法(9.1.5)

    tar -xzvf jetty-distribution-9.1.5.v20140505.tar.gz
    # can rename 'jetty-distribution-9.1.5.v20140505' to 'jetty-9.1.5' or similar
    cd jetty-distribution-9.1.5.v20140505
    rm -rf VERSION.txt license-eplv10-aslv20.html notice.html start.d/jsp.ini resources/log4j.properties demo-base/
    find -name README.TXT | xargs rm -fv
    
    mv etc etc.bak              # keep a backup of etc/ and modules/, take whats necessary
    mv modules modules.bak
    mkdir etc modules work
    mv modules.bak/.donotdelete modules.bak/deploy.mod modules.bak/ext.mod modules.bak/http.mod \
        modules.bak/logging.mod modules.bak/resources.mod modules.bak/security.mod modules.bak/server.mod modules.bak/servlet* \
        modules.bak/webapp.mod modules/
    mv $(grep -h  color=none "etc.*.xml" modules/* | sed 's/etc/etc\.bak/g') etc/
    mv etc.bak/jetty-started.xml etc.bak/jetty.conf etc/        # required for bin/jetty.sh
    mv etc.bak/webdefault.xml etc/                              # required for web applications
                                                                # provides default deployment descriptor config for all apps
    # rm -rf modules.bak/ etc.bak/                              # remove if not needed
    
    sed -i '/^#/d; /^\s*$/d' start.ini start.d/http.ini         # clean if needed
    
    vi start.ini start.d/http.ini                               # check and modify if needed
        start.ini: 'jetty.send.server.version=false', remove ' module=websocket'
        http.ini: 'jetty.port=9999'
    vi modules/<whatever.mod>                                   # check and modify if needed
    vi etc/jetty.xml # to prevent Jetty from showing context related information
        remove
            <Item>
                <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
            </Item>
    vi etc/jetty-logging.xml # suffix date with '-', instead of prefixing with '_'
        change
            <Arg><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg>
            ...
            <Get id="ServerLogName" name="datedFilename"/>
        to
            <Arg><Property name="jetty.logs" default="./logs"/>/stderrout.log.yyyy_mm_dd</Arg>
            ...
            <Arg type="java.lang.String">yyyy-MM-dd</Arg>
            <Arg type="java.lang.String">HHmmssSSS</Arg>
            <Get id="ServerLogName" name="datedFilename"/>
    vi etc/webdefault.xml # disable jsp support and modify other default settings
        remove or comment out <servlet> and <servlet-mapping> of JSP Servlet
        remove or comment out index.jsp from <welcome-file-list>
        set dirAllowed to false in default servlet
    vi bin/jetty.sh # use $JETTY_BASE/logs instead of $JETTY_BASE as working directory
        change
            JETTY_RUN=$(findDirectory -w /var/run /usr/var/run $JETTY_BASE /tmp)
            JETTY_STATE=$JETTY_BASE/${NAME}.state
        to
            JETTY_RUN=$(findDirectory -w /var/run /usr/var/run $JETTY_BASE/logs $JETTY_BASE /tmp)
            JETTY_STATE=$JETTY_RUN/${NAME}.state
    vi bin/jetty.sh # use $JETTY_HOME/work as default TMPDIR
        move following 
            TMPDIR=${TMPDIR:-/tmp}
        below 'JETTY_HOME=$PWD' and change
            TMPDIR=${TMPDIR:-"$JETTY_HOME"/work}
    

    以及由此产生的结构

    jetty-distribution-9.1.5.v20140505
    ├── bin
    │   └── jetty.sh
    ├── etc
    │   ├── jetty-deploy.xml
    │   ├── jetty-http.xml
    │   ├── jetty-logging.xml
    │   ├── jetty-started.xml
    │   ├── jetty.conf
    │   ├── jetty.xml
    │   └── webdefault.xml
    ├── lib
    │   └── <no change or keep only relevant>
    ├── logs
    ├── modules
    │   ├── deploy.mod
    │   ├── ext.mod
    │   ├── http.mod
    │   ├── logging.mod
    │   ├── resources.mod
    │   ├── security.mod
    │   ├── server.mod
    │   ├── servlet.mod
    │   ├── servlets.mod
    │   └── webapp.mod
    ├── resources
    ├── start.d
    │   └── http.ini
    ├── start.ini
    ├── start.jar
    ├── webapps
    └── work