корневая директива nginx внутри блока местоположения не работает - PullRequest
0 голосов
/ 26 апреля 2018

Текущий конфиг nginx у меня выглядит так:

server {
  listen 80;
  server_name mydomain.com;

  root /home/myname/some_app/public;

  location / {
    try_files $uri @some_named_location;
  }

  location /sub {
    root /home/myname/other_app/public;
    try_files $uri @other_named_location;
  }
}

Я ожидаю, что mydomain.com/sub/xxx будет обслуживаться /home/myname/other_app/public/sub/xxx, но вместо этого /home/myname/some_app/public/sub/xxx. Что здесь не так?

Я также попытался использовать alias вместо root в блоке местоположения /sub:

location /sub {
  alias /home/myname/other_app/public;
  try_files $uri @other_named_location;
}

Тогда я ожидаю, что mydomain.com/sub/xxx будет обслуживаться /home/myname/other_app/public/xxx, но все же он будет обслуживаться /home/myname/some_app/public/sub/xxx.

Я даже пытался переместить директиву root серверного блока в блок /.

server {
  location / {
    root /home/myname/some_app/public;
    try_files $uri @some_named_location;
  }

  location /sub {
    root /home/myname/other_app/public;
    try_files $uri @other_named_location;
  }
}

Но все равно не работает.

...