NGINX Proxy_Pass entfernt URL-Teilzeichenfolge

NGINX Proxy_Pass entfernt URL-Teilzeichenfolge

Ich habe einen NGINX, der als Reverse-Proxy fungiert. Ich muss eine Teilzeichenfolge string_1 aus der URL entfernen, der Rest der URL ist variabel.

Beispiel:

Origin: http://host:port/string_1/string_X/command?xxxxx

Destination: http://internal_host:port/string_X/command?xxxxx

nginx.conf:

location /string_1/   { 

    proxy_pass  http://internal_host:port/$request_uri$query_string;

Danke,

@pcamacho

Antwort1

Es ist wirklich einfach und unkompliziert. Fügen Sie einfach /path/einen Teil zu hinzu proxy_passund nginx ersetzt locationdas Präfix s durch diesen Pfad. Sie müssen /string_1/durch ersetzen /, also tun Sie es:

location /string_1/ {
    proxy_pass  http://internal_host:port/;
}

Antwort2

Ich habe eine Möglichkeit gefunden, die Proxy-Pass-URL umzuschreiben:

  location  /string_1/   {  

    if ($request_uri ~* "/string_1/(.*)") { 
            proxy_pass  http://internal_host:port/$1;
    }   

  }

Grüße,

@pcamacho

verwandte Informationen