2016-06-03 2 views
7

Проект, над которым я работаю, основан на нескольких серверах, которые используют балансировщик нагрузки. Проблема в том, что я не могу поддерживать сеанс PHP через все серверы. Каков наилучший способ управления сеансом над балансировщиком нагрузки ...?Как сохранить сеанс над балансировщиком нагрузки?

ответ

9

Я могу придумать эти два метода для этой цели.

  1. Использование кластерного сервера веб-приложений, где сеанс доступны для всех серверов
  2. информацию об уровне
  3. Использование IP для поддержания сродства между пользователем и сервером
+0

Спасибо muzammil, его полезно, .. Я думаю, мы также можем поделиться информацией о сессии пользователя в базе данных или файловой системе на серверах приложений. –

+0

рад помочь :) –

0

рыть путь для сохранения сеанса внутри DB, который поддерживает все ваши несколько серверов. Серверы всегда получают одинаковые _PHPSESSID из-за того, что это написано как файл cookie домена.

Итак, если вы знаете идентификатор сеанса - вы знаете, что запрашивать из базы данных, обслуживающей сессии.

6

Рабочий SSL & Балансировщик нагрузки, обычно размещать SSL на сервере балансировки нагрузки, но не на серверных серверах. Таким образом, вам нужен только один сертификат на одном сервере. Затем балансировщик нагрузки разговаривает с серверами задней панели, используя простой HTTP. Это, очевидно, требует, чтобы ваши серверы заднего конца не были напрямую доступны из Интернета. Этот балансировщик нагрузки отвечает за дешифрование запроса, он также сможет проверить запрос на jsessionid.

+0

Что такое SSL, связанный с вопросом? Как это получилось 4 upvotes? – ceejayoz

+0

Липкие сессии хорошо работают с «Apache» в качестве балансировщика нагрузки. Вы должны проверить Apache «mod_proxy» и «mod_proxy_balancer» –

+0

Это здорово, но ваш ответ ничего не говорит о липких сеансах. – ceejayoz

Смежные вопросы