请教一个 nginx 小问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whx20202
V2EX    NGINX

请教一个 nginx 小问题

  •  
  •   whx20202 2018 年 1 月 25 日 4203 次点击
    这是一个创建于 2977 天前的主题,其中的信息可能已经有所发展或是发生改变。

    server 块: root /aaa/bbb;

     location = / { include location.conf; index html/index.html; } location / { include location.conf; proxy_pass http://127.0.0.1:8080; } 

    按理来说, 第一个 location 带等于号=,应该是精确匹配,为啥我访问 www.hostname.com 的时候,却走了第二个 location 呢?

    我把第二个 location 注释掉的话,能正常访问 index.html

    第 1 条附言    2018 年 1 月 25 日
    # 这个 location 只是捕捉 /的请求,实际转发到下面那个
    location = / {
    include location.conf;

    # 瞎 JB 填一个,反正也用不上
    root /aaa/bbb/;
    # 使用 index 会造成一次内部重定向,详情 https://nginx.org/en/docs/http/ngx_http_index_module.html#index
    index index.html;
    }

    location = /index.html {
    include location.conf;
    root /真 /实 /路 /径 /;
    }

    location / {
    include location.conf;

    proxy_pass http://127.0.0.1:8080;
    }
    15 条回复    2018-01-26 09:09:07 +08:00
    whx20202
        1
    whx20202  
    OP
       2018 年 1 月 25 日
    而且 8080 端口的日志显示:
    "HTTP/1.1 GET /html/index.html" - 404 Not Found

    给我感觉像是第一个 location 把请求路径修改,然后丢给第二个 location
    qq641016547
        2
    qq641016547  
       2018 年 1 月 25 日 via iPhone
    覆盖?不晓得如何精确
    h4lbhg1G
        3
    h4lbhg1G  
       2018 年 1 月 25 日
    可以这样用么?我一般都是 root index 一起设置,index 也可以带路径啊。。。
    whx20202
        4
    whx20202  
    OP
       2018 年 1 月 25 日
    @h4lbhg1G 我 index 设置了绝对路径感觉也不行。。。

    比如 index /aaa/bbb/html/index.html ,那么那就会给 8080 端口请求这个 /aaa/bbb/html/index.html

    总觉得是 location 1 的结果出来之后又跑到 location2 了
    h4lbhg1G
        5
    h4lbhg1G  
       2018 年 1 月 25 日
    我是说 root /aa/bb/html ; index index.html;
    交换下两个 location 顺序呢?
    whx20202
        6
    whx20202  
    OP
       2018 年 1 月 25 日
    @h4lbhg1G 还是不行,我想办法把第二个 location 穷举一下,让他匹配不上第一个好了
    pubby
        7
    pubby  
       2018 年 1 月 25 日
    index 的问题

    http://nginx.org/en/docs/http/ngx_http_index_module.html#index

    It should be noted that using an index file causes an internal redirect, and the request can be processed in a different location.
    whx20202
        8
    whx20202  
    OP
       2018 年 1 月 25 日
    @pubby 感谢!我看了半天的 location 文档,没想到在这里
    那看来我的需求是达不成了 我看看别的办法
    h4lbhg1G
        9
    h4lbhg1G  
       2018 年 1 月 25 日
    @whx20202 嗯 似乎只有第二个表示默认的能匹配空路径,精确匹配的必须带 /,话说对空路劲加上一个 location 写一个正则^$似乎可行
    whx20202
        10
    whx20202  
    OP
       2018 年 1 月 25 日
    @h4lbhg1G 7L 给了个答案,问题出在 index 上,而不是 location
    h4lbhg1G
        11
    h4lbhg1G  
       2018 年 1 月 25 日
    The ngx_http_index_module module processes requests ending with the slash character (‘/’).

    我看到这句随口说的,也不太懂。也许空路劲可以用 try file
    whx20202
        12
    whx20202  
    OP
       2018 年 1 月 25 日
    @pubby 感谢 我又加了一个 location 专门处理 index redirect 过后的请求,这把彻底 OK 了
    在 append 里
    deletelazy
        13
    deletelazy  
       2018 年 1 月 26 日 via iPhone
    第一个问题是两个规则都匹配到了,但是以最后一个匹配也就是第二个为准吧,可以限制匹配到了就不往下匹配
    iyangyuan
        14
    iyangyuan  
       2018 年 1 月 26 日 via iPhone
    index 是默认路径,但是没有指明 root 或 alias,我觉得这种写法,本身就是给自己挖坑
    whx20202
        15
    whx20202  
    OP
       2018 年 1 月 26 日
    @iyangyuan 没事 现在搞定了
    你这头像是吞食天地啊 我特别喜欢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     850 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:09 PVG 05:09 LAX 14:09 JFK 17:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86