beryl
V2EX  ›  问与答

请教一个 nginx proxy_pass 配置问题, get 参数不对

  •  
  •   beryl · Mar 2, 2020 · 1878 views
    This topic created in 2265 days ago, the information mentioned may be changed or developed.

    请假一个关于 nginx 跳转配置问题
    原地址:
    http://abc.com/test/play?id=123
    期望
    http://xyz.com/play?id=123
    但是配置一直不能获取到参数

    配置如下

          location ^~/test/play {
                proxy_set_header Host $http_host;
                proxy_set_header  X-Real-IP        $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://xyz.com/play?$request_uri;
                proxy_redirect off;
                proxy_cookie_path  / /;
            }
    

    试了多种方式,都是不行

    7 replies    2020-03-02 15:33:57 +08:00
    also24
        1
    also24  
       Mar 2, 2020
    不应该用 $request_uri,应该是 $query_string 吧
    beryl
        2
    beryl  
    OP
       Mar 2, 2020
    @also24 试了,也不行
    none
        3
    none  
       Mar 2, 2020
    期望地址是不带 /test 的,我在想你的配置是不是反了
    shakaraka
        4
    shakaraka  
    PRO
       Mar 2, 2020   ❤️ 1
    location ^~/test/play {
    proxy_pass_request_body on;
    proxy_pass_request_headers on;
    proxy_pass http://xyz.com/play;
    proxy_redirect off;
    proxy_cookie_path / /;
    }
    kechx
        5
    kechx  
       Mar 2, 2020 via iPhone   ❤️ 1
    ls 正解,参数会自动带上去的,不少额外配置,配置好转发路径就好了
    also24
        6
    also24  
       Mar 2, 2020
    @RihcardLu #5
    啊,我的错,没仔细看配置当成重定向了
    beryl
        7
    beryl  
    OP
       Mar 2, 2020
    @wunonglin @RihcardLu
    最开始试了还是有问题,好像是和其他规则冲突了

    请教另一个配置方法,怎么更具 url 是否含有 id=标识配置 location 呢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 19:37 · PVG 03:37 · LAX 12:37 · JFK 15:37
    ♥ Do have faith in what you're doing.