当前位置: 代码网 > it编程>数据库>Mysql > Nginx中代理的上下文路径设置方式

Nginx中代理的上下文路径设置方式

2025年03月19日 Mysql 我要评论
nginx代理的上下文路径设置实际配置nginx的时候在location段中配置的路径(request_uri)以及代理指令(proxy_pass)中设置的上下文路径的组合不同最后实现的结果就不一样例

nginx代理的上下文路径设置

  • 实际配置nginx的时候
  • 在location段中配置的路径(request_uri)以及代理指令(proxy_pass)中设置的上下文路径的组合不同
  • 最后实现的结果就不一样

例子

  • 加入请求nginx服务的url都为: http://10.10.1.72:8088/abc/system/commom

case 1

location后的上下文路径为"/api",代理路径的上下文路径为 空

location /abc{
    proxy_pass http://10.10.1.90:8080;
    proxy_rediect off;
}
  • 代理过程: 将schema(http),host,port替换,其他uri都不变,然后发送到web服务器。
  • 客户端请求url: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080/abc/system/commom

case 2

location后的上下文路径为"/abc",代理路径的上下文路径为 “/”

location /abc{
    proxy_pass http://10.10.1.90:8080/;
    proxy_rediect off;
}
  • 代理过程: 按照请求路径中的/abc匹配到了对应的代理后,除了替换host,port替换,把"/abc"替换为代理路径上下文路径"/"
  • 客户端请求url: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080//system/commom

case 3

location后的上下文路径为"/abc/",代理路径的上下文路径为 空

location /abc/{
    proxy_pass http://10.10.1.90:8080;
    proxy_rediect off;
}
  • 代理过程: 按照请求路径中的/abc匹配到了对应的代理后,把请求的ip和port替换为代理服务的ip和port,对应的uri不变
  • 客户端请求url: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080/abc/system/commom

case 4

location后的上下文路径为"/abc/",代理路径的上下文路径为 “/”

location /abc/{
    proxy_pass http://10.10.1.90:8080/;
    proxy_rediect off;
}
  • 代理过程: 按照请求路径中的/abc匹配到了对应的代理后,除了把请求的ip和port替换为代理服务的ip和port,把"/abc/“替换为”/“,而”/abc/"之后的路径不变。
  • 客户端请求url: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080/system/commom

总结

如果代理proxy_pass只有ip和host,没有上下文,则代理过程只替换nginx请求的ip和port,其余部分不变。

如果代理proxy_pass除了ip和host,还有上下文,则代理过程中,除了替换ip和port之外,还会将location的路径修改为porxy_pass中的上下文,然后将剩余路径拼接。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com