个体工商户 网站备案,网站内容管理规范,网站建设的语言与工具,宝安网页设计培训Nginx的官网将proxy_pass分为两种类型#xff1a;
不带URI方式#xff1a;只包含IP和端口号的#xff0c;不带uri#xff08;单个/也算uri#xff09;#xff0c;比如proxy_pass http://localhost:8080#xff1b;带URI方式#xff1a;在端口号之后有其他路径的#… Nginx的官网将proxy_pass分为两种类型
不带URI方式只包含IP和端口号的不带uri单个/也算uri比如proxy_pass http://localhost:8080带URI方式在端口号之后有其他路径的包含了只有单个/的如proxy_pass http://localhost:8080/以及其他路径比如proxy_pass http://localhost:8080/abc。
一、URL末尾存在 uri
处理逻辑代理请求时会先将请求的uri中和location匹配的部分替换成 proxy_pass 指定的uri再将最终的uri拼接到代理地址才是最终访问的url如
location /proxy {proxy_pass http://127.0.0.1:8099/svr1; # uri为/svr1
}
发送如下请求http://localhost:8088/proxy/index.html详细解析 请求的uri/proxy/index.html location匹配的部分/proxy proxy_pass 指定的uri/svr1 最终的uri/svr1/index.html 将请求的uri中和location匹配的部分替换成 proxy_pass 指定的uri 代理地址http://127.0.0.1:8099 最终访问的urlhttp://127.0.0.1:8099/svr1/index.html 即访问 http://localhost:8088/proxy/index.html 实际请求路径为 http://127.0.0.1:8099/svr1/index.html
二、URL末尾不存在 uri 处理逻辑代理请求时直接将请求的uri拼接到代理地址就是最终访问的url如 location /proxy2 {proxy_pass http://127.0.0.1:8099; # 无uri
}
发送如下请求http://localhost:8088/proxy2/index.html
详细解析 请求的uri/proxy2/index.html 代理地址http://127.0.0.1:8099 最终访问的urlhttp://127.0.0.1:8099/proxy2/index.html 即访问 http://localhost:8088/proxy2/index.html 实际请求路径为 http://127.0.0.1:8099/proxy2/index.html
下面的几个例子加深理解
server {listen 80;server_name localhost;location /api1/ {proxy_pass http://localhost:8080;}# http://localhost/api1/xxx - http://localhost:8080/api1/xxxlocation /api2/ {proxy_pass http://localhost:8080/;}# http://localhost/api2/xxx - http://localhost:8080/xxxlocation /api3 {proxy_pass http://localhost:8080;}# http://localhost/api3/xxx - http://localhost:8080/api3/xxxlocation /api4 {proxy_pass http://localhost:8080/;}# http://localhost/api4/xxx - http://localhost:8080//xxx请注意这里的双斜线好好分析一下。location /api5/ {proxy_pass http://localhost:8080/haha;}# http://localhost/api5/xxx - http://localhost:8080/hahaxxx请注意这里的haha和xxx之间没有斜杠分析一下原因。location /api6/ {proxy_pass http://localhost:8080/haha/;}# http://localhost/api6/xxx - http://localhost:8080/haha/xxxlocation /api7 {proxy_pass http://localhost:8080/haha;}# http://localhost/api7/xxx - http://localhost:8080/haha/xxxlocation /api8 {proxy_pass http://localhost:8080/haha/;}# http://localhost/api8/xxx - http://localhost:8080/haha//xxx请注意这里的双斜杠。
}