在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

作者:CUFFS
链接:https://www.jianshu.com/p/b113bd14f584
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发表评论

邮箱地址不会被公开。 必填项已用*标注