前言
近期写个小demo,因为用到某大厂的在线数据,接口做了跨域限制,所以利用Nginx代理来解决这些问题。
1. nginx.conf 配置信息
由于nginx.conf配置信息较多,本篇只关注跟axios和静态资源请求设置,顺便也将常见的一些配置项备注一下。具体设置如下:
?
2. proxy_pass的斜杠问题
Nginx的官网将proxy_pass分为两种类型:
一种是只包含IP和端口号的(连端口之后的/也没有,这里要特别注意),比如proxy_pass http://localhost:8080,这种方式称为不带URI方式;
另一种是在端口号之后有其他路径的,包含了只有单个/的,如proxy_pass http://localhost:8080/,以及其他路径,比如proxy_pass http://localhost:8080/abc。
2.1 对于不带URI方式
对于不带URI方式,Nginx将会保留location中路径部分,比如:
?
在访问http://localhost/api1/xxx时,会代理到http://localhost:8080/api1/xxx
2.2 对于带URI方式
对于带URI方式,nginx将使用诸如alias的替换方式对URL进行替换,并且这种替换只是字面上的替换,比如:
?
当访问http://localhost/api2/xxx时,http://localhost/api2/(注意最后的/)被替换成了http://localhost:8080/,然后再加上剩下的xxx,于是变成了http://localhost:8080/xxx。
2.3 总结一下
?
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。
原文链接:https://segmentfault.com/a/1190000020027003