Я столкнулся с несколькими вопросами и ответами, которые используют этот синтаксис:
location @default {
# ...
}
location /somewhere {
try_files $uri @default;
}
Я искал высоко и низко на Google, и я не могу найти какую-либо документацию об этом. Что это означает и каковы некоторые из его практического использования? Это своего рода объявление и присваивание переменной? Извините за вопрос новичка.
В примере, который вы цитируете в своем вопросе:
Если входящий запрос получен по адресу http: // ваш-домен / где-то , то местоположение совпадает с / где-то, и он пытается в двух местах последовательно найти ответ, как указано в директиве try_files, отвечая первой успешной попыткой.
location @default
директивой. Named_location никогда не будет соответствовать входящему запросу, и используется в качестве ссылки указать отклик в других директивах о местоположении.Таким образом, можно избежать оператора if (если файл существует, то использовать его, иначе ответить как spec'd в директиве location @default). Так что это может быть использовано как сокращение для условия if. «Если» заявления определенно «осуждаются» авторами nginx ( если это зло ), так как они имеют некоторые ограничения и могут не дать ожидаемого результата.
источник