2013-03-22 5 views
1

У меня есть приложение Rails, использующее Jruby, которое я хотел бы развернуть для производства. Он использует Тринидад. Я хотел бы работать как порт 80 без использования root. Может ли authbind быть разумным выбором (на Ubuntu)? Каков хороший способ его настройки?работает на сервере trinidad (для Rails) под authbind?

ответ

0

Вы используете Jruby, т.е. используя JVM? authbind перехватывает стандартные вызовы библиотеки сокетов (например, bind() в socket.h). К сожалению, Java (по крайней мере, java 1.6+ по моему опыту) не использует стандартные библиотеки сокетов, но использует много системных вызовов более низкого уровня, поэтому authbind не работает с Java.

Если вы хотите запустить tomcat на порт, то есть использовать nginx или apache в качестве обратного прокси или использовать iptables для перезаписи «целевого порта» входящих пакетов. Более подробная информация в tomcat FAQ: http://wiki.apache.org/tomcat/HowTo#How_to_run_Tomcat_without_root_privileges.3F

+0

Это имеет смысл, но я думал, что bind() уже был вызовом низкого уровня. – seand

+0

Теперь, когда я думаю об этом, мои попытки получить authbind для работы с java не включали использование опции «--deep» для authbind. Я бы отредактировал сценарий запуска tomcat, добавив «authbind --deep» к команде, что auctualy вызывает JVM. –