Очистка причала - удаление ненужных вещей

Я использую Jetty как свой веб-контейнер.

То, что я сделал на шагах установки, - это получить исходный tar-мяч и очистить от него некоторые каталоги и файлы.

Я хочу поднять здесь:

Что вы использовали для удаления с Jetty для использования в производственных/промежуточных средах?

Что я ИЗМЕНИЛ на пакете причала по умолчанию:

  • REMOVE:
    • README.txt
    • pom.xml
    • Javadoc/
    • примеры /
    • /WebApps/тест *
    • /контексты/тест *
    • /проект-сайт
    • /resources/log4j.properties
  • CREATE:
    • Работа /

Вопросы:

  • Я не нарушаю права на лицензию?
  • Могу ли я принести какой-либо недостаток моей системе (производительность/стабильность)?
  • Кто-нибудь настраивает больше, чем это на пристани?
  • Комментарии?
  • Вопросы?
  • Советы?

Похожие сообщения:

Ответ 1

Я не нарушаю лицензионное право?

Правильно.

Можно ли сделать какой-либо недостаток для моей системы (производительность/стабильность)?

Единственный недостаток заключается в том, что файл свойств Log4J полезен для контроля того, сколько (или как мало) ведение журнала выполняется. Отключение регистрации в целом приводит к меньшим лог файлам, сохраняя дисковое пространство. (Не должно быть проблем с дисками TB.) Если файл свойств ведения журнала не может быть найден, приложение может по умолчанию использовать уровни DEBUG или INFO, а не уровни ERROR. Таким образом, Log4J полезен для того, чтобы все приложения могли регистрировать критическую информацию только.

Устранение посторонних примеров (набор тестов) ужесточает безопасность, подвергая меньшую системную информацию. Он также может сэкономить немного памяти, потому что тестовые webapps не могут быть загружены в память.

Кто-нибудь настраивает больше, чем это на пристани?

Вы можете очистить каталог webapps следующим образом:

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

Перезапустить Jetty.

Ответ 2

Здесь один из способов очистки Jetty (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

Ответ 3

В прошлом я использовал для обрезки Jetty вниз много, вырезав все фреймворки, которые я не использую. Это также позволило мне обрезать все банки с зависимостью. Как только я добрался до самых простых вещей, которые я использовал, он был очень крошечным. Затем я переупаковал его с помощью onejar, поэтому это была единственная передача файлов, которая готова к выполнению. Это было долгое время с тех пор, как мне удалось создать крупномасштабные кластеры приложений, поэтому есть, вероятно, лучшие способы достижения тех же целей. Облачные вычисления приходят на ум, но я многого не делал, но именно там я бы посмотрел первым, если бы сегодня столкнулся с теми же проблемами.

Плюс пропускная способность и диск намного дешевле в эти дни, поэтому проблемы со временем стали меньше.