我的 NGINX 服务器上有以下配置。
location /login/ {
auth_request /auth;
auth_request_set $auth_status $upstream_status;
proxy_ssl_verify off;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_ssl_ciphers HIGH:!aNULL:!MD5;
proxy_ssl_certificate cert.pem;
proxy_ssl_trusted_certificate cert.crt;
proxy_ssl_certificate_key cert.key;
proxy_pass https://www.myshop.com;
}
location /auth {
internal;
proxy_pass http://myvalidator:8080/validator$is_args$args;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
检查验证器端,请求已完成,但未发送 URL 查询,甚至未发送原始标头。如何将原始查询或原始标头中的值发送到验证器服务器?
答案1
您可以尝试设置proxy_pass_request_body on;
它指示是否将原始请求的标头字段传递给代理服务器。
location /auth {
internal;
proxy_pass http://myvalidator:8080/validator$is_args$args;
proxy_pass_request_body on;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}