Nginx 服务 Proxy_pass 指令详解

2019-12-25 0 By admin

Nginx作为一个拥有不错性能的反向代理服务器, 其 proxy_pass 指令配置时需要注意结尾的正斜线 / 的影响。

一、说明

proxy_pass 指令语法如下:
proxy_pass uri;
uri 用于设置nginx代理资源的路径。uri 分为以正斜线结尾和非正斜线结尾两种情况。

  1. 正斜线结尾:表示绝对路径代理;取代匹配的location参数后的匹配路径字符串。
  2. 非正斜线结尾:表示相对路径代理;将location 参数后的字符串补充到代理路径(path)后面。

二、实例

2.1、绝对路径,代理未设置path

访问:http://hostname/proxypath/page.html;
接受:http://hostname/page.html。

location /proxypath/ {
	proxy_pass http://hostname[:port]/;
}

2.2、绝对路径,代理设置path

访问:http://hostname/proxypath/page.html;
接受:http://hostname/resourcepath/page.html。

location /proxypath/ {
	proxy_pass http://hostname[:port]/resourcepath/;
}

2.3、相对路径,代理未设置path

访问:http://hostname/proxypath/page.html;
接受:http://hostname/proxypath/page.html。

location /proxypath/ {
	proxy_pass http://hostname[:port];
}

2.4、相对路径,代理设置path

访问:http://hostname/proxypath/page.html;
接受:http://hostname/resourcepathpage.html。

location /proxypath/ {
	proxy_pass http://hostname[:port]/resourcepath;
}