Nginx pass_proxy с переменными - PullRequest
       1

Nginx pass_proxy с переменными

0 голосов
/ 22 октября 2019

У меня проблемы с созданием прокси-сервера nginx в качестве URL-адреса переменной службы в kubernetes. URL выглядит следующим образом: http://localhost/user?username=Dave Я ожидаю, что этот URL приведет меня на подстраницу /user, которая будет читать ?username=Dave и затем извлекать данные из базы данных. Однако это приводит меня на домашнюю страницу приложения (/ вместо /user) и не считывает переменную, даже если url включает /user?username=Dave. Мой текущий конфигурационный файл nginx выглядит так:

server {
listen 0.0.0.0:80;
server_name localhost;

location / {
  proxy_pass http://${FLASK_APP}:8080/;
}
location /user {
      proxy_pass http://${GO_APP}:8000/;
  }
}

Я прочитал, что location /user будет соответствовать URL, который я передаю. Что с этим не так? Или мне нужно что-то добавить к proxy_pass http://${GO_APP}:8000/; или location /user?

1 Ответ

0 голосов
/ 23 октября 2019

Как отмечается в комментариях, проблема возникает из-за того, что вы используете переменную в цели proxy_pass. Как также отмечено в комментариях, этот вопрос связан. В ответе на документы указано:

Особый случай - использование переменных в операторе proxy_pass: запрошенный URL-адрес не используется, и вы несете полную ответственность за создание целевого URL-адреса самостоятельно.

Это означает, что вам либо нужно использовать статическую цель proxy_pass, например

// note that I added the forward slash
location /user/ {
    proxy_pass http://destination:8000/;
}

Или, в качестве альтернативы, я думаю, вы можете сделать это также

location /user/ {
    proxy_pass http://${GO_APP}:8000/user$is_args$args;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...