Nginx переписать не передавая строку запроса

У меня есть веб-приложение RESTAPI с конечными точками API, такими как

/ API / 1 / помочь? Пользователя =

/ API / 1 / тест? Пользователя =

Мое приложение работает на https://mytest-web.azurewebsites.net/;

У меня есть шлюз nginx, поэтому пользователи могут использовать конечные точки API с помощью https://mytestapi.com/api/1/help?user= который будет использоваться по адресу https://mytest-web.azurewebsites.net/api/1/help?user=

У меня есть два правила перезаписи nginx. Эти два в конечном итоге перепишут в одни и те же конечные точки API со всеми параметрами запроса. Но только один перенаправляет все параметры запроса в мой веб-сайт RESTAPI.

Первый рабочий, который передает все параметры строки запроса после перезаписи.

 location ~* ^/(api|api2)/ {
    set $myhost $host;
    #add some more extra header for api processing
    add_header x-userlocaction $myhost;
    proxy_set_header x-userlocaction $myhost;
    rewrite ^(.*)$ $1 break;

    add_header X-debug-message "GENERIC API $1"  always;
    proxy_pass https://mytest-web.azurewebsites.net;

}

Не работает У меня есть другая перезапись nginx для моих поставщиков. Но этот не передает параметры строки запроса.

location /vendorapi/ {
add_header X-debug-message "vendor API SPECIFIC $1"  always;
rewrite ^/vendorapi/(.*)$ /api/$1  break;
proxy_pass https://mytest-web.azurewebsites.net;

}

Я должен позволить моему поставщику использовать API с

/ Vendorapi/1/ помощь? Пользователя =

Что не так со вторым правилом перезаписи?

Почему параметры строки запроса не передаются?

Чем первый отличается от второго?

0 ответов

Другие вопросы по тегам