nginx代理proxy_pass绝对路径和相对路径实验

96
CUFFS
1.0 2017.04.03 00:27* 字数 475

在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走
假设下面四种情况分别用 http://127.0.0.1/proxy/cuffs/css/toosimple.txt 进行访问,toosimple.txt文件里面写文件路径方便对比。

代理服务10.0.0.1:8080根目录结构如下

static01
└── cuffs
└── css
└── toosimple.txt
static01cuffs
└── css
└── toosimple.txt
proxy
└── cuffs
└── css
└── toosimple.txt
cuffs
└── css
└── toosimple.txt

nginx代理配置

第一种绝对路径

location /proxy/ {
         proxy_pass http://10.0.0.1:8080/;
    }

当访问 http://127.0.0.1/proxy/cuffs/css/toosimple.txt时,nginx匹配到/proxy/路径,把请求转发给10.0.0.1:8080服务,实际请求代理服务器的路径为
http://10.0.0.1:8080/cuffs/css/toosimple.txt

第二种相对路径

location /proxy/ {
         proxy_pass http://10.0.0.1:8080;
    }

当访问 http://127.0.0.1/proxy/cuffs/css/toosimple.txt时,nginx匹配到/proxy/路径,把请求转发给10.0.0.1:8080服务,实际请求代理服务器的路径为
http://10.0.0.1:8080/proxy/cuffs/css/toosimple.txt 此时nginx会把匹配的proxy也代理给代理服务器

第三种

location /proxy/ {
         proxy_pass http://10.0.0.1:8080/static01/;
    }

当访问 http://127.0.0.1/proxy/cuffs/css/toosimple.txt时,nginx匹配到/proxy/路径,把请求转发给10.0.0.1:8080服务,实际请求代理服务器的路径为
http://10.0.0.1:8080/static01/cuffs/css/toosimple.txt

第四种

location /proxy/ {
         proxy_pass http://10.0.0.1:8080/static01;
    }

当访问 http://127.0.0.1/proxy/cuffs/css/toosimple.txt时,nginx匹配到/proxy/路径,把请求转发给10.0.0.1:8080服务,实际请求代理服务器的路径为
http://10.0.0.1:8080/static01cuffs/css/toosimple.txt

参考:http://m.blog.csdn.net/article/details?id=48803235

nginx