Балансировка нагрузки серверов Liferay Portal в комплекте с Jboss с использованием клавиши F5

Мы пытаемся сбалансировать нагрузку серверов Liferay Portal в комплекте с Jboss 7.1.1, используя F5. Когда мы пытаемся связаться с хостом и портом Load Balancer, мы наблюдаем странное поведение.

Если мы попытаемся достичь https://Loadbalancer_Host:Loadbalancer_Port, нас перенаправят на https://СтраницаLoadbalancer_Host:Liferay_Port/c/portal/layout.

Мы правильно настроили сертификаты на обоих серверах Liferay, и они доступны по отдельности без каких-либо проблем.

Мы не можем определить, связана ли эта проблема с профилем, который мы настроили на F5, или нам не хватает конфигурации на Jboss.

Любая помощь приветствуется.


person anand_206    schedule 13.05.2015    source источник


Ответы (1)


Во-первых, убедитесь, что свойства исходных серверов, которые указывают на F5, настроены так, чтобы они указывали на правильный виртуальный IP-адрес/порт/URI назначения виртуального сервера (например, https://x.x.x.x:443/c/portal/layout).

Что именно вы пытаетесь сделать с виртуальным сервером в отношении шифрования? Похоже, вы либо пытаетесь выполнить сквозную передачу SSL, либо мост SSL/TLS на F5, учитывая, что у вас есть сертификаты на серверах Liferay (похоже, вы завершаете работу на серверах Liferay). Если вы пытаетесь выполнить сквозную передачу SSL/TLS, то для этого вам просто не нужен клиентский или профиль "SSL/TLS" на стороне сервера (просто настройте так, как если бы вы http порт без профилей, но имейте в виду, что с этой конфигурацией вы не можете выполнять какие-либо манипуляции уровня 7, такие как irules относительно событий HTTP-запроса/ответа, следует настроить с уровнем производительности 4 или аналогичным, и явно не следует использовать профиль http.Если вы пытаетесь создать мост «SSL/TLS», вы должны использовать профиль на стороне клиента для завершения SSL/TLS в сочетании с профилем на стороне сервера для повторного шифрования перед отправка на серверы Liferay С помощью моста SSL/TLS вы можете использовать правила уровня 7 для проверки/манипулирования http-трафиком.

Если вы чувствуете, что может происходить перенаправление, вы можете проверить это с помощью irule, но опять же, вы не можете настроить его, если вы на самом деле не пытаетесь создать мост, как упоминалось. Используйте объявление события HTTP Response, проверьте, является ли статус перенаправлением, и если это так, создайте журнал, сообщающий вам об этом. HTTP::is_redirect не работает с некоторыми версиями, поэтому проверьте фактическое состояние, если вы получите сообщение об ошибке в журналах LTM:

Следующие коды ответа заставляют [HTTP::is_redirect] возвращать совпадение (ниже не показано, что вы также можете проверить заголовок Location, направляющий браузер на альтернативный ресурс):

-301 (перемещено навсегда) -302 (найдено) -303 (см. другое) -305 (использовать прокси) -307 (временное перенаправление)

when HTTP_RESPONSE {  

# Check if the status indicates a redirect, use [HTTP::is_redirect] if possible
# if {([HTTP::status] == 302) or ([HTTP::status] == 301) or....}{
if {[HTTP::is_redirect]} {  

   log local0. "There was indeed a redirect"
}  
}

Если есть перенаправление, оно, скорее всего, будет из ESB, если только у вас нет логики на F5, которая проверяет определенный URI и, если обнаружено, направляет на другой URI. Поэтому просто убедитесь, что кто-то не настроил и не применил irule для перенаправления (что на самом деле можно сделать на уровне 4 для http или https) примерно следующим образом:

when CLIENT_ACCEPTED {

#if all of the members in the pool have been marked down by the health monitor
if { [active_members [LB::server pool_name]] <1 } {
TCP::respond "HTTP/1.0 302 Found\r\nServer: Apache\r\nConnection:     Close\r\nContent-Length: 0\r\nLocation: https://www.somewhere.else.com\r\n"
}
} 

Я думаю, что после прочтения этого вы сможете понять, в чем может заключаться проблема, если она еще не решена, если вы все еще не уверены, что готовы помочь.

person Justin    schedule 17.07.2015