Параметры запроса Nginx все еще отправляются на proxy_pass - как их удалить? - PullRequest
0 голосов
/ 31 октября 2018

У меня есть этот 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, и я не вижу защищенное веб-приложение (в данном случае Kibana).

Я пытался использовать proxy_set_header X-Original-URI $request_uri; и добавлять / auth url с $is_args$args в расположении / auth, но параметры запроса не передаются в / auth API, поэтому это регулярное выражение сопоставляет и создает строку запроса ($ запрос).

Как мне убедиться, что в URL proxy_pass (kibana) нет параметров запроса?

...