NGINX Reverse Proxy
To pass a request to an HTTP proxied server, the proxy_pass directive is specified inside a location. For example:
location /some/path/ {
proxy_pass http://www.example.com/link/;
}
Note that in the first example above, the address of the proxied server is followed by a URI, /link/. If the URI is specified along with the address, it replaces the part of the request URI that matches the location parameter. For example, here the request with the /some/path/page.html URI will be proxied to http://www.example.com/link/page.html. If the address is specified without a URI, or it is not possible to determine the part of URI to be replaced, the full request URI is passed (possibly, modified).
To pass a request to a non-HTTP proxied server, the appropriate **_pass directive should be used:
- fastcgi_pass passes a request to a FastCGI server
- uwsgi_pass passes a request to a uwsgi server
- scgi_pass passes a request to an SCGI server
- memcached_pass passes a request to a memcached server
The proxy_pass directive can also point to a named group of servers. In this case, requests are distributed among the servers in the group according to the specified method.
- 做反向代理,都是放在location模块。
- 已匹配的那部分url会去除,然后把剩余部分传给代理的服务器。例如,请求/some/path/page.html,转给后端服务器的url为:http://www.example.com/link/page.html
- 如果代理的不是http服务器,例如uwsgi,写法应该为 uwsgi_pass。