Nginx反向代理神奇的斜线/及跳转问题 2019-08-24 22:06:23 最近倒腾nginx的配置,本以为简单的代理设置,结果被`/`搞的一头雾水,为了后续不在懵逼,特意整理了下关于斜线的问题。 假设到达nginx的请求路径为`/foo/api`: 表1 | case | location | proxy_pass | result | | --- | --- | --- | --- | | 1 | /foo/ | http://192.168.1.123:4000/ | /api | | 2 | /foo | http://192.168.1.123:4000/ | //api | | 3 | /foo/ | http://192.168.1.123:4000 | /foo/api | | 4 | /foo | http://192.168.1.123:4000 | /foo/api | 表2 | case | location | proxy_pass | result | | --- | --- | --- | --- | | 5 | /foo/ | http://192.168.1.123:4000/bar/ | /bar/api | | 6 | /foo | http://192.168.1.123:4000/bar/ | /bar//api | | 7 | /foo/ | http://192.168.1.123:4000/bar | /barapi | | 8 | /foo | http://192.168.1.123:4000/bar | /bar/api | location、proxy_pass分别为nginx的配置,result为nginx匹配处理后的请求路径。 > 这里说明下nginx的处理原则:当`proxy_pass`的`ip:port`后没有字符串时,nginx将请求路径原封不动的转发(如case3、4);否则,将`location`从请求路径中去除后转发。 以case1为例:`proxy_pass`的端口后面有个`/`字符串,因此会把`location`:`/foo/`从请求路径中删除后转发,即:`/foo/api -> '/' + api`,最终处理结果为`/api`。 非特殊说明,均为原创,原创文章,未经允许谢绝转载。 原始链接:Nginx反向代理神奇的斜线/及跳转问题 赏 Prev 关于Hadoop NameNode启动时Loading edits时间超长的问题 Next 解决Spark Standalone模式下Work的Address和HDFS不匹配的问题