在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
网友评论