Nginx请求参数仍发送到proxy_pass-如何删除它们?

时间:2018-10-31 06:45:36

标签: nginx config kibana reverse-proxy auth-request

我的服务器上有这个Nginx conf-

server {
  listen *:80;
  server_name kibana_proxy;

  location = /auth {
      internal;
      set $query '';
      if ($request_uri ~* "[^\?]+\?(.*)$") {
         set $query $1;
      }
      # add_header X-debug-message "Parameters being passed $is_args$args" always;
      proxy_pass http://127.0.0.1:8080/login/internal?$query;
  }

  location / {
      proxy_pass http://127.0.0.1:5601/;
      proxy_http_version 1.1;
      auth_request /auth;
  }

  error_page 404 /404.html;
      location = /40x.html {
  }

  error_page 500 502 503 504 /50x.html;
      location = /50x.html {
          root /usr/share/nginx/html;
  }
}

因此,/ auth用http状态200响应后,请求参数将附加到proxy_pass,这将导致http状态400错误,并且我看不到受保护的Web应用程序(在这种情况下为Kibana)。

我尝试使用proxy_set_header X-Original-URI $request_uri;并在/ auth位置下将$is_args$args附加/ auth URL,但请求参数未传递到/ auth API,这就是该正则表达式匹配并创建一个查询字符串($ query)。

如何确保proxy_pass(kibana)网址没有任何请求参数?

0 个答案:

没有答案