我在 nginx 中使用 auth_request 模块作为身份验证模块。
location ~ ^/apigw/cws/(.*)$ {
log_subrequest on;
auth_request /_sessionvalidate;
auth_request_set $token $upstream_http_authorization;
proxy_set_header Authorization $token;
proxy_pass http://cws/$1$is_args$args;
}
location = /_sessionvalidate {
internal;
proxy_method POST;
proxy_busy_buffers_size 512k;
proxy_buffers 4 512k;
proxy_buffer_size 256k;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://apigw/sessionValidate/;
}
这里的问题是当我尝试将 sessionvalidate 传递的令牌传递给 cws 上游服务器时
proxy_set_header Authorization $token;
我收到 431 错误。我尝试在 server/http 指令中设置以下内容
large_client_header_buffers 4 64k;
client_header_buffer_size 16k;
但我仍然面临错误。我不确定如何确保增加上游请求的标头大小。请帮忙。