代码之家  ›  专栏  ›  技术社区  ›  Utopia

对nginx中的尾随斜杠行为有点困惑

  •  1
  • Utopia  · 技术社区  · 6 年前

    最近在nginx的拖尾斜线给了我一些不眠之夜。请求帮助解决这个问题

    问题 : 中的奇怪尾随斜杠行为 proxy_pass .

    为什么这样做:

    location /myapi/ {
          proxy_pass   http://node_server8/;
        }
    

    但这不会

    location /myapi/ {
          proxy_pass   http://node_server8;
        }
    

    请注意,在 http://node_server8 在第二个代码块中。这是特别奇怪的,因为我有一些其他配置,我没有尾随斜杠在后端,所有的工作正常。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Richard Smith    6 年前

    他们完全不同。

    在第一 proxy_pass 语句中包含一个值为的uri参数 / . 在你没有的那一刻。

    当你付出 主动传球 uri参数(在前缀内 location ,它将请求的uri转换为类似于 alias 函数,其中 位置 指令被替换为uri参数的值。例如 /myapi/foo 变成 /foo 在上游通过之前。

    如果你不提供 主动传球 有了uri参数,就不会发生转换,请求 /升/升 在上游传递时保持不变。

    this document 详情。