Не вдаваясь в проксирование или перенаправление портов, перенаправление портов и т. Д., Есть ли какой-либо собственный метод для привязки Смола (сервер Java) на порт 80 на сервере Ubuntu, в то время как Resin запускается от root, но затем работает как непривилегированный пользователь (www-data)?
Это на Ubuntu 10.10, на котором работает Resin из репозитория caucho apt. Я знаю, что если я запускаю Resin как root, я могу использовать порт 80, но, как вы понимаете, это не идеально.
Нашел ответ, терминальные cmds ниже. Эти команды предполагают, что вы используете Ubuntu 10 и установили Resin через подходящие репозитории. В моем случае www-data будет запускать authbind с идентификатором пользователя 33, который вы увидите ниже:
# aptitude install authbind
# nano -w /etc/authbind/byuid/33
# chown www-data. /etc/authbind/byuid/33
# chmod 700 /etc/authbind/byuid/33
# nano -w /etc/init.d/resin
При редактировании /etc/init.d/resin найдите:
start)
Ниже найдите:
su $USER
Удалите эту строку, заменив на:
su $USER -s /usr/local/bin/authbind --deep /bin/bash -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start""" 1>/dev/null 2>/dev/null
Найти:
stop)
Ниже найдите:
su $USER
Удалите эту строку, заменив на:
su $USER -s /bin/bash -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS shutdown""" 1>/dev/null 2>/dev/null
Запишите файл и выйдите (используйте CTRL + O, CTRL + X)
Теперь вам нужно отредактировать конфигурацию смолы:
# nano -w /etc/resin/resin.xml
Убедитесь, что для вашего HTTP-порта установлено значение 80 (я считаю, что это по умолчанию, поскольку Resin по умолчанию работает как rot), и убедитесь, что следующие 2 строки также раскомментированы в файле:
www-data www-data
Сохранить и выйти (CTRL + O, CTRL + X)
Теперь запустим смолу:
# service resin start