Forum: NGINX How to tell Nginx not to decode URL for proxy_pass?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E1becab774e65697b147cc50aa996553?d=identicon&s=25 Ville Mattila (Guest)
on 2013-10-11 03:24
(Received via mailing list)
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%...
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-....
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
This topic is locked and can not be replied to.