Что такое HAProxy appsession request-learn?
Я читаю руководство по HAProxy, и есть часть, которую я не понимаю:
request-learn
If this option is specified, then haproxy will be able to learn
the cookie found in the request in case the server does not
specify any in response. This is typically what happens with
PHPSESSID cookies, or when haproxy's session expires before
the application's session and the correct server is selected.
It is recommended to specify this option to improve reliability.
Что означает "в случае, если сервер не указывает ничего в ответе", в частности, на что отвечает сервер, и какой смысл изучать cookie, если сервер не указывает его?
Вопрос "когда сеанс haproxy истекает до сеанса приложения" кажется важным, но его обработка haproxy здесь для меня не имеет смысла.
1 ответ
Обычно, когда вы используете cookie-файл, он приходит в ответ от внутреннего сервера с заголовком "set-cookie". Обычно это в ответ на логин. Если этого не произойдет, HAProxy не сможет привязать вас к тому же внутреннему серверу
Эта опция позволяет HAProxy "узнавать" о cookie-файле на основе HTTP-запроса, а не просто HTTP-ответа с "set-cookie".
Чтобы ответить на ваши конкретные вопросы:
"На что отвечает сервер?" Любой запрос HTTP
"Какой смысл изучать куки, которые сервер не предоставил?" Это позволяет HAProxy выполнять липкие действия, когда у вас есть сервер, который выполняет нестандартные действия и не / не может предоставить cookie, как ожидалось. В качестве примера он приводит файл cookie PHPSESSID.
"Сеанс HAproxy истекает до сеанса приложения?" HAProxy хранит куки для выполнения липкости. У них есть TTL, прежде чем они больше не годятся. В случае, если TTL для внутреннего сервера длиннее, чем TTL для HAProxy, HAProxy забудет файл cookie перед внутренним сервером. Клиент будет иметь Cookie в запросе, и HAProxy сможет повторно изучить cookie.
Ваш скептицизм находится в хорошем положении, потому что если ваши внутренние серверы не реплицируют информацию о сеансе, тогда этот вариант имеет ограниченную полезность в случае TTL. Это все еще относится к нестандартному сценарию случая печенья однако.