Introducing reverse proxying
NGINX can serve as a reverse proxy by terminating requests from clients and opening new ones to its upstream servers. On the way, the request can be split up according to its URI, client parameters, or some other logic, in order to best respond to the request from the client. Any part of the request's original URL can be transformed on its way through the reverse proxy.
The most important directive when proxying to an upstream server is the proxy_pass
directive. This directive takes one parameter—the URL to which the request should be transferred. Using proxy_pass
with a URI part will replace the request_uri
variable with this part. For example, /uri
in the following example will be transformed to /newuri
when the request is passed on to the upstream:
location /uri { proxy_pass http://localhost:8080/newuri; }
There are two exceptions to this rule, however. First, if the location is defined with a regular expression, no transformation of the URI...