NGINX Rewrite игнорируется / не работает с proxy_pass - PullRequest
0 голосов
/ 06 сентября 2018

Ошибка в исходном приложении продавца. Написал маршрут в нашем приложении узла, чтобы прокси-запрос и избежать ошибки, но не может заставить переписать NGINX для правильной работы. Я попробовал много вариантов переписать, и теперь в конце моего ума. Потратил больше времени на переписывание, чем на реальный код ... = (

IN: /Txtranscription/transcription/TranscriptionHandler.ashx?q=c3R1ZHlfaWQ...
OUT: /Txtranscription/transcription/TranscriptionHandler.ashx?q=c3R1ZHlfaWQ...
EXPECTED: /transcription?encoded=c3R1ZHlfaWQ... 

### override handling of /Txtranscription/transcription/TranscriptionHandler.ashx
location /Txtranscription/transcription/TranscriptionHandler.ashx {
    add_header Access-Control-Allow-Origin $cors_header;
    access_log  logs/vapi.proxy.log lfupstream;
    error_log  logs/vapi.error.log error;
    rewrite ^/Txtranscription/transcription/TranscriptionHandler\.ashx\?q=(.*)$ /transcription?encoded=$1 break;
    proxy_pass http://vapi;
}

1 Ответ

0 голосов
/ 06 сентября 2018

Вам вообще не нужно переписывать запрос, вы можете добавить путь к директиве proxy_pass, и Nginx заменит соответствующую часть блока местоположения из исходного URI запроса на URI вашего proxy_pass директивы.

Так что это должно работать:

location /Txtranscription/transcription/TranscriptionHandler.ashx {
    set $args encoded=$arg_q;
    ....
    proxy_pass http://vapi/transcription$is_args$args;
...