У меня есть некоторые проблемы с «базовым» правилом перезаписи в типе местоположения proxy_pass:
location ~* /test1/network/v1/operator/ke3/dataUp {
rewrite ^(?<begin>/test1/network/v1/operator/ke3/dataUp)(?<parametersPart>.*)(?<mustDie>/dataUp)$ $parametersPart break;
proxy_pass http://server_preproduction;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
Я ожидаю, что любые вызовы, отправленные на: .../test1/network/v1/operator/ke3/dataUp?param1=GHJ¶m2=865/dataUp
будут равны: .../test1/network/v1/operator/ke3/dataUp?param1=GHJ¶m2=865
Так что я просто хочупроанализируйте раздел параметров, чтобы удалить любой дополнительный / dataUp из исходного запроса.Но когда я пытаюсь использовать для этого любые регулярные выражения, nginx, кажется, возвращается в местоположение / и использует запрос по умолчанию ...
Я уверен, что используется правильное местоположение, потому что когда яиспользуйте переписать как: rewrite ^(?<begin>/test1/network/v1/operator/ke3/dataUp)(?<parametersPart>.*)$ TEST$parametersPart break;
Журнал на прокси-сервере получил: TEST? param1 = GHJ¶m2 = 865 / dataUp
Я не добавляю / в конце proxy_pass, потому что я хочу заменить всеURL (но это не обязательно! Я перепробовал много комбинаций ...)
Если кто-то может спасти мой день: p
Спасибо !!