Как настроить proxy_pass для получения нужного адреса? - PullRequest
0 голосов
/ 30 октября 2018

Я пытался настроить Nginx для нашего варианта использования.

Когда я настраиваю Nginx со следующей конфигурацией:

location /dep-core {
    proxy_pass http://node-server:7070/;
}

и вызвать сервер со следующей конечной точкой: <END-POINT>/dep-core/api/login

звонок перенаправляется на <ADDRESS-AFTER-RESOLUTION>//api/login с двумя ведущими //s.

и когда я удаляю завершающий / in proxy_pass после 7070:

location /dep-core {
    proxy_pass http://node-server:7070;
}

звонок перенаправляется на <ADDRESS-AFTER-RESOLUTION>/dep-core/api/login с добавлением начального / основного ядра.

Я хочу, чтобы мой звонок перенаправил мой звонок на: <ADDRESS-AFTER-RESOLUTION>/api/login Каков был бы стандартный способ достичь этого?

1 Ответ

0 голосов
/ 30 октября 2018

Для правильного перевода с /dep-core/foo на /foo директива location требует завершающего /.

Например:

location /dep-core/ { 
    proxy_pass http://node-server:7070/; 
}

Подробнее см. в этом документе .


Чтобы перевести /dep-core в /, вы можете использовать rewrite...break с умным регулярным выражением во втором блоке вашего вопроса. Но простое решение состоит в том, чтобы добавить точное совпадение location для этого случая с одним краем.

Например:

location = /dep-core {
    rewrite ^ $uri/ last;
}
location /dep-core/ { 
    proxy_pass http://node-server:7070/; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...