V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
beryl
V2EX  ›  问与答

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

  •  
  •   beryl · 2020-03-02 12:17:47 +08:00 · 1536 次点击
    这是一个创建于 1738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请假一个关于 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 条回复    2020-03-02 15:33:57 +08:00
    also24
        1
    also24  
       2020-03-02 12:50:08 +08:00
    不应该用 $request_uri,应该是 $query_string 吧
    beryl
        2
    beryl  
    OP
       2020-03-02 13:04:21 +08:00
    @also24 试了,也不行
    none
        3
    none  
       2020-03-02 14:06:56 +08:00
    期望地址是不带 /test 的,我在想你的配置是不是反了
    wunonglin
        4
    wunonglin  
       2020-03-02 14:16:01 +08:00   ❤️ 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 / /;
    }
    RihcardLu
        5
    RihcardLu  
       2020-03-02 14:59:17 +08:00 via iPhone   ❤️ 1
    ls 正解,参数会自动带上去的,不少额外配置,配置好转发路径就好了
    also24
        6
    also24  
       2020-03-02 15:27:23 +08:00
    @RihcardLu #5
    啊,我的错,没仔细看配置当成重定向了
    beryl
        7
    beryl  
    OP
       2020-03-02 15:33:57 +08:00
    @wunonglin @RihcardLu
    最开始试了还是有问题,好像是和其他规则冲突了

    请教另一个配置方法,怎么更具 url 是否含有 id=标识配置 location 呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 01:53 · PVG 09:53 · LAX 17:53 · JFK 20:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.