Мне любопытно, какие методы вы, боги-администраторы Linux, используете для управления развертываниями Jetty. Я работаю с Windows Server, поэтому все еще привыкаю ко всему этому. Я искал хорошее решение для развертывания экземпляров Jetty в качестве порта 80 в установке Linux.
До сих пор я видел этот поток, который позволяет Jetty работать как демон:
http://jira.codehaus.org/browse/JETTY-458
И я видел эту ветку, в которой рассказывается об альтернативах для настройки порта 80:
http://wiki.eclipse.org/Jetty/Howto/Port80
Все это казалось чем-то вроде взлома. Конечно, существует относительно стандартный способ развертывания веб-сервера, такого как Jetty, в Linux. В настоящее время я использую CentOS 5.5, но открыт для других дистрибутивов.
Заранее спасибо.
К сожалению, процессы Java не демонизируются так же хорошо, как другие языки. Для Jetty вы захотите использовать что-то вроде демонизировать для запуска и управления процессом.
редактировать - некоторые дополнительные детали:
После сборки daemonize (согласно инструкциям в приведенной выше ссылке) параметры командной строки объясняются в сгенерированном файле daemonize.html
. Проверьте его с помощью команды запуска, чтобы убедиться, что он работает должным образом.
Затем, чтобы запустить Jetty при запуске, добавьте команду daemonize в сценарий оболочки инициализации (например, для CentOS / RHEL добавить /etc/rc.d/rc.local
). Например:
#!/bin/bash
#...other startup commands
/path-to/daemonize -c /path-to/jetty/ -p pid.txt -e error.log -o console.log -a /usr/bin/java -jar start.jar
Я бы поставил прокси Apache2 перед сервером приложений. В Apache2 есть специальный модуль, предназначенный для этого. Он добавляет соответствующие заголовки к запросу вашего приложения для идентификации удаленного пользователя. Apache2 можно использовать для обслуживания статического контента и передачи запросов приложений на сервер приложений.
Windows не поддерживает привилегированные порты (порты меньше 1024). Помимо запуска Jetty от имени root, требуется некоторая методика привязки порта 80 как root и передачи данных в Jetty. Apache2 использует setuid после привязки порта, чтобы процесс, обрабатывающий запрос, не имел корневого доступа к вашей системе.
На найденных вами сайтах есть несколько вариантов: