Nginx переписать не передавая строку запроса - PullRequest
0 голосов
/ 21 декабря 2018

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

/ api / 1 / help? User =

/ api / 1 / test? User =

Мое приложение работает на 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/ help? user =

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

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

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

...