Является ли хорошей идеей запускать tomcat (tcServer из источника Spring) непосредственно на порту 80 (или 443) как root
Можно использовать mod_proxy или mod_jk из apache2, чтобы обойти это. Я также видел решение на основе iptables (т.е. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080)
Есть ли какие-либо плюсы / минусы, которые следует знать, когда дело доходит до производственного использования?
вы определенно не хотите запускать свое веб-приложение от имени пользователя root! никогда !!
сделайте его максимально безопасным, - его взломают, это просто вопрос времени (и популярности :))
запустите tomcat как другой пользователь ('tomcat' или такой), который может только читать / записывать (если требуется) в свой собственный каталог.
Что касается перенаправления портов, я бы рекомендовал использовать iptables, как вы показали.
в качестве альтернативы вы можете сделать перенаправление apache как описано здесь.
если у вас большой сайт и вы используете аппаратные балансировщики нагрузки, вы можете сопоставить порт 80 на VIP-сервере с портом 8080 на своих веб-серверах, и в этом случае вам не нужно ничего делать на стороне сервера, и, конечно же, это лучший вариант подходить.
Как указано в pulegium, никогда не запускайте свой веб-сервер (каким будет Tomcat, если вы используете HTTP-коннектор как root! Вместо этого деактивизируйте HTTp для Tomcat (см. Server.xml) и используйте коннектор AJP / 1.3 с apache2 mod_proxy_ajp (или lighttpd, который также предлагает прокси AJP). Это рекомендованная установка для производственной среды. Кроме того, он предлагает вам преимущества mod_proxy_balancer и всех других вещей apache (или lighttpd).