1.proxy_pass 为url时,没有/,当命中规则时,会用请求的 ip/域名+port 替换为proxy_pass指定的值去访问资源
server {
listen 80;
server_name localhost;
location /api {
add_header Cache-Control no-cache;
add_header Pragma no-cache;
add_header Expires 0;
# 动态页面
proxy_pass http://localhost:8080;
}
}
请求路径: http://localhost:80/api/param/get1
实际处理后的请求链接为: http://localhost:8080/api/param/get1
http://localhost:80 替换为了 http://localhost:8080
2.proxy_pass 为某个具体uri时。例如http://localhost:8080/ 或者 http://localhost:8080/xxx。
那么当命中规则时,会把请求url的 ip/域名+port+匹配到的路径替换为proxy_pass指定的值去访问资源
server {
listen 80;
server_name localhost;
location /api {
add_header Cache-Control no-cache;
add_header Pragma no-cache;
add_header Expires 0;
# 动态页面
proxy_pass http://localhost:8080/;
}
}
请求路径: http://localhost:80/api/param/get1
nginx实际处理后请求链接为: http://localhost:8080/param/get1
http://localhost:80/api 替换为了 http://localhost:8080
总之:location设置的路径,取决于proxy_pass设置的值。
proxy_pass设置的值只是ip/域名+port时 ,用proxy_pass 只替换请求url的 ip/域名+port
proxy_pass设置的值为ip/域名+port+路径时 ,用proxy_pass 替换请求url的ip/域名+port+命中路径