评论

收藏

[Nginx] nginx中proxy_pass各种用法详解

web服务器 web服务器 发布于:2021-11-14 21:15 | 阅读数:514 | 评论:0

nginx中配置location代理转发规则的时候不同写法对应不同转发规则。本文就介绍几种常见的匹配情况,感兴趣的可以了解一下
代理转发规则
nginx中配置location代理转发规则的时候不同写法对应不同转发规则。
如果proxy_pass使用了URI,当传送请求到后端服务器时,规范化以后的请求路径与配置中的路径的匹配部分将被替换为指令中定义的URI(对应下文第一种情况)。
如果proxy_pass没有使用URI,传送到后端服务器的请求URI一般客户端发起的原始URI(下文第二种情况)。
访问地址:http://localhost/proxy/abc.html
以下是几种常见的匹配情况:

第一种:
location /proxy/ {
proxy_pass http://127.0.0.1:8080/;
}
代理到:http://127.0.0.1:8080/abc.html

第二种:
location /proxy/ {
proxy_pass http://127.0.0.1:8080;
}
相对于第一种proxy_pass缺少/
代理到:http://127.0.0.1:8080/proxy/abc.html

第三种:
location /proxy/ {
proxy_pass http://127.0.0.1:8080/api/;
}
代理到:http://127.0.0.1:8080/api/abc.html

第四种:
location /proxy/ {
proxy_pass http://127.0.0.1:8080/api;
}
相对第三种少/
代理到:http://127.0.0.1:8080/apiabc.html
location /proxy {
proxy_pass http://127.0.0.1:8080/api;
}
代理到:http://127.0.0.1:8080/api/abc.html

第五种:
location /proxy {
proxy_pass http://127.0.0.1:8080/;
}
代理到:http://127.0.0.1:8080//abc.html
注意此处有两个反斜杠//
location /proxy {
proxy_pass http://127.0.0.1:8080;
}
代理到:http://127.0.0.1:8080/proxy/abc.html
以下是官方文档的一段解释:
DSC0000.png

NGINX-httpproxy模块官方文档
阿里tengine翻译的中文文档-推荐阅读
到此这篇关于nginx中proxy_pass各种用法详解的文章就介绍到这了,更多相关nginx proxy_pass用法内容请搜索CodeAE代码之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持CodeAE代码之家!
原文链接:https://blog.csdn.net/qq_20898673/article/details/121103368

关注下面的标签,发现更多相似文章