Обязательно ли устанавливать сервер nginx перед использованием apache tomcat. Можем ли мы использовать только apache tomcat, есть ли плюсы и минусы, какой выбор лучше и почему. Я использую Fedora 22 для развертывания моего приложения на Tomcat 8 для приложения Java
Можно использовать только Tomcat, однако следует избегать некоторых очевидных ошибок. Самое важное
Даже не думай о
Я не считаю Tomcat сложным в настройке и обслуживании, но, возможно, это связано с тем, что я использую его в течение многих лет. Что касается проблем с безопасностью, они время от времени возникают на каждом сервере, и обнаруженные проблемы периодически исправляются. Просто погуглите.
Если хотите, можете использовать только кота. Однако будьте осторожны!
Tomcat - это контейнер сервлетов. Он использует JSSE для реализации TLS и по умолчанию предоставляет службы управления в сети. Он также имеет большое количество уязвимостей безопасности (см. https://tomcat.apache.org/security-7.html например). Это несколько медленно и чрезвычайно сложно.
Практика безопасности, которую я рекомендую своим клиентам, заключается в том, чтобы запустить перед ним другой веб-сервер, если они не используют аутентификацию сертификата клиента. Другой веб-сервер может действовать как кэширующий прокси и проверяющий прокси (почти, но не совсем брандмауэр веб-приложений), может выгружать SSL, позволяет использовать openssl вместо JSSE, а иногда даже может выполнять балансировку нагрузки. Все это хорошие особенности.
Архитектура Tomcat также создает проблемы. Например, он может использовать только привилегированные порты, работая как root (очень плохо), или используя механизм authbind (который не поддерживает IPv6 до tomcat 8). Ему необходим постоянный доступ как к своим TLS-ключам, так и к файлу конфигурации, содержащему пароль, используемый для их шифрования, что является незначительной угрозой безопасности, которую устраняет любой крупный веб-сервер.
То, что вы используете в качестве прокси, на самом деле не имеет значения; любой способный демон HTTP должен быть достаточным. Однако я бы также порекомендовал брандмауэр веб-приложений для фильтрации запросов.
это не обязательно добавить nginx перед Tomcat.