PHP поддерживает идентификатор сессии между несколькими серверами Memcached

Мне нужно поделиться сессиями PHP между несколькими серверами. Однако я не уверен, как сохранить идентификатор сеанса, созданный на одном сервере, и как передать его на следующий сервер.

По сути, клиент может загрузить файл, но на какой сервер файл отправляется, зависит от того, какой сервер не перегружен.

Например, session_start () вызывается на test.com

Сообщение AJAX отправляется на serv1.test.com. Когда я вызываю session_start () на serv1.test.com, я хочу, чтобы он извлекал информацию о существующем сеансе, которая была создана session_start () на test.com. Тем не менее, похоже, что PHP-сессии не работают так?

Я установил Memcached и следовал этому руководству здесь:

https://www.digitalocean.com/community/tutorials/how-to-share-php-sessions-on-multiple-memcached-servers-on-ubuntu-14-04

У меня есть один централизованный сервер 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»), чтобы открыть существующий сеанс?

1

Решение

Решение состояло в том, чтобы установить session.cookie_domain для включения поддоменов.

session.cookie_domain = «.test.com»

Спасибо frz3993

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]