I was trying to use Thin app server and had one issue.
When nginx proxies the request to Thin (or Unicorn) using proxy_pass http://my_app_upstream;
the application receives the modified URL sent by nginx (http://my_app_upstream
).
What I want is to pass the original URL and the original request from client with no modification as the app relies heavily on it.
The nginx' doc says:
If it is necessary to transmit URI in the unprocessed form then directive proxy_pass should be used without URI part.
But I don't understand how exactly to configure that as the related sample is actually using URI:
location /some/path/ {
proxy_pass http://127.0.0.1;
}
So could you please help me figuring out how to preserve the original request URL from the client?
In my scenario i have make this via below code in nginx vhost configuration
$http_host will set URL in Header same as requested
In case something modifies the location that you're trying to serve, e.g.
try_files
, this preserves the request for the back-end: