В настоящее время мы используем «стандартную» архитектуру, созданную AWS OpsWorks. Мы установили AWS ELB перед несколькими машинами, которые отправляют запросы на одну машину с использованием алгоритма round-robin (у нас есть приложение без гражданства без каких-либо файлов cookie). Apache httpd + Apache tomcat устанавливается на каждом компьютере (все настроено и настроено AWS OpsWorks). Таким образом Apache httpd обрабатывает соединение, а затем отправляет его Tomcat через AJP-соединение.AWS ELB + apache httpd + tomcat
Я хотел бы избавиться от apache httpd. Несколько причин:
- Легче архитектура, проще конфигурация
- Может быть небольшой выигрыш в производительности
- Меньше мониторинга (необходимо контролировать только Tomcat, но не Apache HTTPD)
У меня есть проверили следующую резьбу: Why use Apache Web Server in front of Glassfish or Tomcat?
и не нашли причин, по которым я не должен удалять e apache httpd из моей архитектуры.
Однако, я знаю, что некоторые приложения имеют Nginx перед Tomcat по следующим причинам:
- Медленных клиенты обработка (т.е. рабочий поток из кота освобождается, но асинхронная Nginx поток отправляет клиент)
- DDoS SYN (с использованием SYN печенье) защита
Вопросы для рассмотрения: ли апач HTTPD защищает от этих методов DDoS? Защищает ли AWS ELB от этих методов DDoS? Должен ли я удалить apache httpd (учитывая, что мне ничего не нужно из списка)? Должен ли я заменить его на nginx? Должен ли я заменить его на nginx (учитывая, что у нас есть защита от DDoS с Incapsula)?
Любые другие рекомендации/комментарии были бы высоко оценены! Спасибо заранее!
Использование Apache в качестве балансировки нагрузки перед несколькими экземплярами Tomcat, когда ELB перед несколькими серверами кажется излишне сложным, и причина, по которой вы это делаете, уже решена ELB. Также CloudFront и Incapsula являются одновременно CDN, и смешивание CDN обычно плохо. У Incapsula также есть WAF, поэтому добавление AWS WAF кажется излишне сложным. –
Да, я хотел бы уточнить: apache httpd установлен на каждой машине с tomcat и отправляет запрос только одному экземпляру tomcat на том же компьютере. Балансировка нагрузки выполняется с использованием ELB. – user3489820
Я знаю, что вообще AWS ELB не защищает от DDoS. Вопрос в следующем: защищает ли ELB от некоторых методов DDoS, в частности, «Медленные клиенты»? Когда клиент начинает читать ответ на 1 байт с большой задержкой, что приводит к тому, что «все потоки заняты». – user3489820