読者です 読者をやめる 読者になる 読者になる

nginx で location をネストしても設定は子に継承されない

なんとなく、location をネストしたら、親の location に書いた設定が引き継がれると思っていたのですが、下記のように書いたところ /hoge 配下の URL を叩いても proxy_pass は効かず…。

server {
    listen       8000;
    
    location / {
        proxy_pass http://localhost:8080;
        # ...

        location /hoge {
          # ...
        }
    }
}

子の方にも proxy_pass を設定したらうまく動きました。でもこれってネストした意味が無いような。

server {
    listen       8000;
    
    location / {
        proxy_pass http://localhost:8080;
        # ...

        location /hoge {
          proxy_pass http://localhost:8080;
          # ...
        }
    }
}

ググったのですが location をネストしたときの挙動がどうなるかのドキュメントが見つからなかったので、そもそもネストはしない方が良さそうですね。nginx 1.2.8 で試しました。