Обзор #
Цель этой статьи - объяснить, как увеличить возможности серверов приложений, таких как кот, Jboss or IIS делая их легко масштабируемыми в сети и устанавливая их в высокой доступности, чтобы быть терпимыми к сбоям, и как усилить кибербезопасность.
Что такое высокая доступность? #
Высокая доступность - это качество системы или компонента, которое обеспечивает высокий уровень эксплуатационных характеристик, обычно времени безотказной работы, в течение периода времени, превышающего нормальный.
Путем настройки Серверы приложений В условиях высокой доступности мы решаем следующие вопросы:
- Один сервер теряет эффективность при обработке большого количества запросов
- Данные сеанса сохраняются в случае сбоя сервера
- Обновление приложения без прекращения обслуживания
Что такое веб-масштаб? #
Применяя принципы веб-масштаба к серверам приложений, все бизнес-процессы любого размера могут развиваться, оптимизироваться, автоматизироваться и эффективно масштабироваться.
Что такое сервер приложений? #
Сервер приложений - это программная структура, предоставляющая бизнес-логику для прикладной программы, это означает, что он управляет ресурсами для создания веб-приложений и серверной средой для их запуска.
Хотя эту статью можно использовать в качестве руководства для любого сервера приложений, мы расскажем о некоторых наиболее популярных из них:
- кот программное обеспечение (или также известное как Apache Tomcat или Tomcat server): реализация с открытым исходным кодом технологий Java Servlet, JavaServer Pages, Java Expression Language и Java WebSocket.
- JBoss or WildFly: сервер приложений, разработанный Red Hat.
- IIS (Internet Information Services): сервер приложений, разработанный Microsoft.
Настройка RELIANOID Балансировщик нагрузки #
С RELIANOID Балансировщик нагрузки мы можем обеспечить высокую доступность и масштабируемость серверов приложений. Обратите внимание, что для следования этим инструкциям потребуется установить экземпляр RELIANOID Load Balancer и несколько экземпляров серверов приложений. Среда, которую мы собираемся описать, следующая:

Шаг 0: Репликация сервера #
В нашем примере мы используем два серверных сервера для каждого приложения, но мы можем включить столько, сколько требуется. Очень важно обеспечить согласованность, чтобы при подключении к серверу приложений мы всегда видели одно и то же, и все данные, сохраненные в приложении, не терялись. Для этого необходимо настроить репликацию сеанса на серверах. Мы называем это шаг 0 как это должно быть сделано на серверах приложений.
кот обеспечивает встроенную репликацию сеанса в памяти: DeltaManager и BackupManager, Основное различие между этими двумя репликаторами заключается в том, что DeltaManager медленнее, но надежнее в случае сбоя.
JBoss также предоставляет простой способ включить репликацию сеанса: помечая приложение как распространяемое в web.xml Дескриптор.
Служба репликации для IIS может быть достигнуто с помощью DFSR Репликация распределенной файловой системы.
Шаг 1: создание виртуального IP #
Как только RELIANOID Load Balancer установлен, необходимо создать новый виртуальный IP, в главном меню выбираем Сеть-> Виртуальные интерфейсы-> Действия-> Создать
Найдите физический интерфейс, где вы хотите создать виртуальный IP
Введите имя и адрес вашего нового виртуального IP. Затем сохраните его, нажав кнопку «Создать».
Шаг 2: создание фермы http #
Ферма или кластер - это набор компьютерных серверов, которые обеспечивают функциональность сервера, значительно увеличивая его возможности. Хотя мы используем термины ферма и кластер как синонимы, между ними есть небольшая разница. Когда говорим о кластерподразумевается избыточность, но когда речь идет о ферма, может быть или не быть какой-либо избыточности. В нашем случае, поскольку у нас будет терпимая к сбоям конфигурация, мы могли бы говорить о ферме или кластере как о синонимах.
Таким образом, создав ферму серверов приложений, мы повысим ее производительность и отказоустойчивость, что крайне важно для высокой доступности. Для этого перейдите на LSLB-> Фермы-> Создать
Выберите имя и HTTP как профиль. Мы выбираем профиль http, потому что это лучший вариант для веб-сервисов, поскольку мы можем предоставить опции переключения контента под тем же виртуальным IP-адресом и портом.
Будут отображены еще два варианта. Выберите виртуальный IP-адрес, созданный на шаге 1, и порт (в примере мы выбираем 80, так как он используется по умолчанию для протокола HTTP) и нажмите на Сохранено .
Шаг 3: добавьте сервисы #
Основная идея состоит в том, чтобы обслуживать разные приложения с разных серверов приложений с одного и того же виртуального IP-адреса и порта. Итак, когда ферма создана, мы должны отредактировать ее, чтобы добавить новые сервисы. В нашем примере мы настроим три службы. Один для каждого сервера приложений. Пожалуйста, нажмите на кнопку редактировать ферму.
Некоторые детали фермы могут быть отредактированы, в примере мы собираемся установить значения по умолчанию и сервисы.
На скриншоте выше мы имеем Добавлен сервис с именем службы «app1».
Поскольку мы будем получать доступ ко всем трем службам через одну и ту же ферму, нам необходимо различать эти службы. Для этого мы можем установить значение для Шаблон URL, Это поле позволяет определить веб-сервис по URL-адресу, который клиент запрашивает через определенный шаблон URL-адреса. В нашем примере мы введем ^ / App1. *, ^ / App2. * и ^ / App3. *. Нажмите Изменить для внесения изменений.
Учтите, что бэкэнд должен найти адрес http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (в нашем примере http://192.168.56.200/app1), чтобы гарантировать это, в вашем приложении должен быть установлен контекст. В наших примерах мы настроим контекст / app1 для кот, / app2 для Jboss и / app3 для IIS, Контекст представляет собой веб-приложение, которое работает в конкретном виртуальном хосте. В частном случае IISконтексты называются приложениями.
В этом примере у нас есть два серверных сервера для каждого приложения. Выбираем IP, порт (по умолчанию 8080 для кот и JBossи 80 для IIS), время ожидания и вес и нажмите на сохранить бэкэнд .
Мы хотим избежать коммутации серверов: если во время нашего сеанса мы перейдем с одного сервера на другой, это приведет к эффективности, потере данных и даже к потере связи. Во избежание этого Постоянная сессия должен быть настроен. Мы будем поддерживать сеанс по идентификатору сеанса, поэтому это означает, что во время сеанса мы будем подключаться только к одному серверу.
В глобальных параметрах сервиса теперь мы можем изменить поле персистентного сеанса на COOKIE: определенное печенье
Выбрать JSessionID в качестве идентификатора персистентной сессии для Tomcat и Jboss и Идентификатор сессии для IIS, затем нажмите «Обновить» в нижней части страницы.
Теперь, в той же ферме, мы добавляем еще 2 службы таким же образом, как app1 для app2 и app3, включая файл cookie сохранения для JBoss (по умолчанию это называется JSessionID) и IIS (файл cookie по умолчанию для ASP.NET ASPXAUTH), но вы можете использовать cookie-файлы, требуемые приложением. Каждая служба в ферме имеет свои собственные бэкэнды, которые могут быть разделены между фермами или службами фермы.
Обратите внимание, что порядок служб важен для соответствия правильному шаблону URL.
Наконец, мы должны применить изменения, перезапустив ферму.
Поздравляем! вы настроили серверы приложений в режиме высокой доступности. Вы можете получить к нему доступ, набрав http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (в нашем примере http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).
Шаг 4: расширенная проверка #
Теперь мы настроим опекуна фермы для выполнения расширенных проверок работоспособности бэкэндов, обеспечивающих их работоспособность и работоспособность, а также правильное поведение приложения, а не только проверку TCP-порта. Пожалуйста, найдите Ферма Страж в рамках вашего Сервиса мы настроили на шаге 3. Нажмите на Используйте FarmGuardian для проверки Backend серверовВы также можете изменить время между проверкой и, наконец, в Команда для проверки текстовое поле, введите следующую команду.
check_http -I ХОСТ -w 10 -c 10 -t 10 -e 200 -p ПОРТ -s ' '
Наконец, нажмите «Обновить» в нижней части страницы.
Команда check_http проверяет HTTP-соединения с указанным хостом. В нашем случае мы используем следующие параметры:
-Я ХОЗЯИН: Токен HOST будет заменен заданным внутренним IP-адресом.
-w 10: время реакции на выдачу предупреждения: 10 секунд
-c 10: время реакции на критическое состояние: секунды 10
-t 10: 10 секунд до истечения времени соединения
-e 200: ожидает строку 200 в статусе ответа сервера
-Р ПОРТ: ПОРТ токена будет заменен заданным внутренним портом.
-s ' ': ожидаемая в содержании строка ' '
Итак, эта команда будет в основном проверять, что мы получили ответ 200 OK и что команда ответа содержит строку ' '. Мы выбираем эту строку, потому что она находится в конце ответа, таким образом мы можем гарантировать, что получим полный ответ от серверной части.
Шаг 5: высокий уровень безопасности #
Безопасную связь можно легко настроить с помощью RELIANOID Load Balancer, поэтому следующим шагом будет включение прослушивателя HTTPS: Изменить глобальные параметры фермы измените прослушиватель фермы с HTTP на HTTPS, а виртуальный порт на 443.
Теперь к услугам можно получить доступ, набрав https://[Your_virtual_ip]/[yourappservice] В Вашем браузере.
Теперь безопасная связь работает, но мы можем пойти дальше, настроив параметры HTTPS: в глобальных параметрах фермы найдите Настройки HTTPS раздел. Мы можем изменить шифры в Строгий режим.
Поле ciphers используется для создания списка шифров, принятых SSL-соединениями, чтобы укрепить SSL-соединение. Выбрав Строгий режимПо умолчанию мы установим шифры.
kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED
Другим вариантом является HTTPS сертификаты доступны: будет показан список сертификатов, которые будут выбраны для текущей фермы (только для HTTP-ферм, как в нашем случае). Мы можем выбрать один из списка и нажать на Добавить, Наконец, нажмите на Изменить и перезапустите ферму, чтобы применить изменения.
Для получения дополнительной информации см. Фермы профиля HTTP.
HTTPS также может быть включен на ваших серверах приложений, если это так, вы должны включить опцию Бэкэнды HTTPS.










