我是Nginx的新手并希望得到一些帮助。
我想从nginx中的浏览器cookie中提取某些数据(我的PHP脚本设置的某些字段),以便我可以记录它。如果可能的话,我想通过修改nginx配置来做到这一点。
非常感谢任何指针/帮助。
答案 0 :(得分:38)
您可以使用$cookie_COOKIE_NAME_GOES_HERE
变量访问Cookie值。
答案 1 :(得分:14)
这是一个提取HttpOnly cookie并将其作为OAuth Bearer令牌传递给RESTful api的示例:
http {
map $http_cookie $auth_header {
default "";
"~*OAuth.AccessToken=(?<token>.+)" "Bearer $token";
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/certs/nginx.crt;
ssl_certificate_key /etc/nginx/certs/nginx.key;
proxy_set_header Authorization $auth_header;
location / {
proxy_pass https://rest-api-host.domain.com/;
}
}
}
答案 2 :(得分:8)
如果有人在回复中使用前面的答案和几个不同的cookie,那么正确的正则表达式是:
flatMap
或更多一般用法:
map $http_cookie $auth_header {
default "";
"~*OAuth.AccessToken=(?<token>[^;]+)" "Bearer $token";
}