Tell nginx to stay inside same location?

Hello,

is that possible to tell nginx to stay inside the same location after
rewrite rule is done?

i.e. I have:

location /njs/ {
proxy_pass http://localhost:5501;
…
}

now, if i need to cut off /njs/ part, i added the following:
location /njs/ {
rewrite /njs(.*) $1;
proxy_pass http://localhost:5501;
…
}

but, that doesn’t work, because my uri has changed and nginx goes to the
default location, which I don’t need.

what could I do in this situation?

–
With best regards,
Gregory E.

On Thu, Jul 30, 2015 at 11:57 PM, Gregory E. [email protected]
wrote:

}

what could I do in this situation?

if only you have read the documentation…

http://nginx.org/r/proxy_pass

…
When the URI is changed inside a proxied location using the rewrite
directive, and this same configuration will be used to process a
request (break):

location /name/ {
rewrite /name/([^/]+) /users?name=$1 break;
proxy_pass http://127.0.0.1;
}

In this case, the URI specified in the directive is ignored and the
full changed request URI is passed to the server.
…

On 07/30/2015 06:02 PM, Edho A. wrote:

…
default location, which I don’t need.
request (break):

location /name/ {
rewrite /name/([^/]+) /users?name=$1 break;
proxy_pass http://127.0.0.1;
}

In this case, the URI specified in the directive is ignored and the
full changed request URI is passed to the server.
…

thank you very very much.
I’ve read the docs, but skipped the break completely, somehow.

On 30 Jul 2015, at 17:57, Gregory E. [email protected] wrote:

now, if i need to cut off /njs/ part, i added the following:
location /njs/ {
rewrite /njs(.*) $1;
proxy_pass http://localhost:5501;
…
}

but, that doesn’t work, because my uri has changed and nginx goes to the default
location, which I don’t need.

what could I do in this situation?

Just add slash in upstream:

location /njs/ {
proxy_pass http://localhost:5501/;
…
}

–
Igor S.