
只是一個簡單的問題。我有一個 php web 應用程序,它設定一個會話 cookie,其中包含使用者名稱、isAdmin 等值。
log_format custom ' "TEST: $cookie_PHPSESSID"';
這將為我提供 cookie 的會話 ID,但我需要它的內容,但我找不到任何方法來檢索它。
使用永久 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 中的會話 ID 從儲存中檢索資料。