Welcome! Log In Create A New Profile

Advanced

How to tell Nginx not to decode URL for proxy_pass?

Ville Mattila
October 10, 2013 09:24PM
Hi,

I need to pass a certain URI namespace to an upstream servers, while taking
away the prefix. Consider following configuration:

location ^~ /going-to-upstream/ {
access_log off;
rewrite /upstream(/.*) $1 break;
proxy_pass http://upstream;
}

location / {
# Actual server
}

So, whenever I will get a request to
http://server/going-to-upstream/something -> I should have a request in my
upstream server for "/something". And I do.

However, as soon as the upstream part has something urlencoded, for example
an url, nginx decodes the url and passes it in decoded format to the
upstream. An example:

http://server/going-to-upstream/something/http%3A%2F%2Fserver%2F
will cause an upstream request "/something/http://server/" while I would
need literally "/something/http%3A%2F%2Fserver%2F"

How could I make the nginx to not decode the URI in rewrite?

(My actual use case is related to using Thumbor, see
http://tech.yipit.com/2013/01/03/how-yipit-scales-thumbnailing-with-thumbor-and-cloudfront/.
They have a dedicated nginx server { } for this, but I need to use an
existing to make Thumbor urls to live under our main application domain.)

Best regards,
Ville
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

How to tell Nginx not to decode URL for proxy_pass?

Ville Mattila October 10, 2013 09:24PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 112
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready