当前位置: 代码网 > 服务器>服务器>Nginx > nginx中的location路径配置(实路径和虚路径)

nginx中的location路径配置(实路径和虚路径)

2024年07月03日 Nginx 我要评论
nginx location路径配置(实路径和虚路径)注:本文要说的不是location的配置规则和内容而是基于url的nginx代理转发的后端接口的路径配置实路径和虚路径?location配置路径时

nginx location路径配置(实路径和虚路径)

注:

  • 本文要说的不是location的配置规则和内容
  • 而是基于urlnginx代理转发的后端接口的路径配置

实路径和虚路径?

location配置路径时,是分实路径和虚路径的,并且路径会影响到proxy_pass转发时的路径。

假如tomcat启动了一个名为online-registration的工程

登录的后端接口如下所示:

@restcontroller
@requestmapping("/user/login")
public class userlogincontroller {
	@requestmapping()
	public object login() {
		return "success";
	}
}

nginxlocation配置如下所示:

自己测试时不要同时配置,避免混淆

# 虚路径
location /v1/online {
	proxy_pass http://1.1.1.1:8080/online-registration/ ;
}
# 实路径
location /v1/online/user {
	proxy_pass http://1.1.1.1:8080/online-registration/user ;
}

结合接口的requestmappingnginx配置来看:

接口的路径是 /user/loginlocation配置的/v1/online为虚拟路径

它的proxy_pass配置到tomcat启动的工程名即可,/v1/online/user路径中包含requestmapping的关键字

它的proxy_pass路径需要配置到工程名下的具体接口的路径。

以浏览器访问虚路径分析

location /v1/online {
	proxy_pass http://1.1.1.1:8080/online-registration/ ;
}

访问http://1.1.1.1/v1/online/user/login

nginx匹配url中的/v1/online

nginx会将online后面的user/login自动的添加到proxy_pass转发的路径/online-registration/后面

nginx转发的实际路径为: http://1.1.1.1:8080/online-registration/user/login

正确的访问后端接口;

以浏览器访问实路径分析

location /v1/online/user {
	proxy_pass http://1.1.1.1:8080/online-registration/user ;
}

访问http://1.1.1.1/v1/online/user/login,同虚路径的访问方式一致。

但是如果proxy_pass的配置是http://1.1.1.1:8080/online-registration;

那么nginx代理时

转发的实际路径为:http://1.1.1.1:8080/online-registration/login

如果你的项目只有/user/login接口,而没有/login接口时,就会出现访问异常。

总结

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

(0)

相关文章:

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

发表评论

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