
просто быстрый вопрос. У меня есть веб-приложение php, которое устанавливает сеансовый cookie со значениями для имени пользователя, isAdmin и т. д. Есть ли способ извлечь эту информацию из файла конфигурации nginx?
log_format custom ' "TEST: $cookie_PHPSESSID"';
Это даст мне идентификатор сеанса cookie-файла, но мне нужно его содержимое, и я не могу найти способ его получить.
Использование постоянных файлов cookie может сработать, но это плохая идея, поскольку пользователи смогут легко изменять значения файлов cookie.
Спасибо заранее, Фили
решение1
Невозможно получить значения сеанса напрямую из файла конфигурации Nginx. Файл конфигурации Nginx представляет собой статическую конфигурацию, которая анализируется при запуске и используется для обработки входящих запросов. Он не имеет доступа к какой-либо динамической информации времени выполнения, такой как данные сеанса, которые обрабатываются приложением PHP.
Однако есть некоторые обходные пути, которые можно использовать для получения доступа к данным сеанса в Nginx. Один из подходов — использовать настройку обратного прокси с Nginx. В этой настройке Nginx выступает в качестве фронтенд-сервера, который пересылает запросы на бэкенд-сервер приложений, такой как Apache или PHP-FPM, который обрабатывает динамический контент.
location / {
proxy_pass http://backend;
proxy_set_header Cookie $http_cookie;
}
Другой подход заключается в хранении данных сеанса в общем хранилище, к которому могут получить доступ как Nginx, так и приложение PHP. Например, вы можете хранить данные сеанса в базе данных или хранилище ключей и использовать Nginx для извлечения данных из хранилища на основе идентификатора сеанса в cookie.