Мне нужно поделиться сессиями PHP между несколькими серверами. Однако я не уверен, как сохранить идентификатор сеанса, созданный на одном сервере, и как передать его на следующий сервер.
По сути, клиент может загрузить файл, но на какой сервер файл отправляется, зависит от того, какой сервер не перегружен.
Например, session_start () вызывается на test.com
Сообщение AJAX отправляется на serv1.test.com. Когда я вызываю session_start () на serv1.test.com, я хочу, чтобы он извлекал информацию о существующем сеансе, которая была создана session_start () на test.com. Тем не менее, похоже, что PHP-сессии не работают так?
Я установил Memcached и следовал этому руководству здесь:
У меня есть один централизованный сервер memcache, для которого настроены test.com и serv1.test.com. Однако session_start () создает уникальный сеанс на каждом сервере вместо повторного использования одного и того же сеанса. Если я отправлю PHPSESSIONID на каждый сервер, я смогу загрузить существующий сеанс.
Как мне сделать то, что я пытаюсь сделать? Я мог бы отправить PHPSESSIONID как переменную в AJAX POST, но разве это не угроза безопасности? Это то, что может быть изменено пользователем …
Как мне заставить serv1.test.com продолжать использовать тот же сеанс, установленный на test.com? Как безопасно передать этот идентификатор сеанса на serv1.test.com, чтобы я мог использовать session_id («существующийsessionid_from_test.com»), чтобы открыть существующий сеанс?
Решение состояло в том, чтобы установить session.cookie_domain для включения поддоменов.
session.cookie_domain = «.test.com»
Спасибо frz3993
Других решений пока нет …