zoukankan      html  css  js  c++  java
  • Nginx:地址转发

    两种情况

    主要分为两种情况,以及一些注意事项:

    • proxy_pass的链接无/
    • proxy_pass的链接有/

    第一种:proxy_pass的链接无/

    proxy_pass中,不带『/』,则把『匹配字符串及后缀(/api/xxx)』均带给转发地址

    # 效果为:http://xxx.xxx.com/api/xxx -> http://127.0.0.1:7000/api/xxx. 转发的时候,包含了url前缀.
    location ^~ /api/ { 
        proxy_pass  http://127.0.0.1:7000; 
    }
    
    # 效果与上面一致
    location ^~ /api {
        proxy_pass  http://127.0.0.1:7000; 
    }
    

    第二种:proxy_pass的链接有/

    proxy_pass中,带『/』,则把『请求地址排除匹配字符串(/api/)』后,再带给转发地址

    # 效果为:http://xxx.xxx.com/api/xxx --> http://127.0.0.1:7000/xxx
    location ^~ /api/ {
        proxy_pass  http://127.0.0.1:7000/; # 端口后多了斜杠『/』
    }
    
    # 注意:下面的代码会导致失败,原因为『/api/xxx排除了/api』后,会把『/xxx』带给转发地址,但转发地址中已有了斜杠,结果会多了一条斜杠,报错。
    # 效果为:http://xxx.xxx.com/api/xxx --> http://127.0.0.1:7000//xxx
    location ^~ /api {  # 这里的匹配字符串最后少了斜杠『/』
        proxy_pass  http://127.0.0.1:7000/;
    }
    

    注意事项

    location的修饰符为正则匹配时,proxy_pass的地址最后不要带斜杠

  • 相关阅读:
    love 玫瑰花
    正则表达式
    .NET Mvc
    html收藏
    winform问题集锦
    MSDE2000
    Oracle 语法
    PowerDesigner
    Oracle 操作
    文件转换(待完善)
  • 原文地址:https://www.cnblogs.com/testopsfeng/p/15294657.html
Copyright © 2011-2022 走看看