В вики nginx говорится:
break - завершает обработку текущих директив перезаписи, и обработка без перезаписи продолжается только в пределах текущего блока местоположения.
Это значит, что:
Если шаблон перезаписи совпадает, обработать перезапись (перезаписать на цель), но не обрабатывать какие-либо другие правила в блоке местоположения и обрабатывать все другие (кеш, прокси и т. Д.) Директивы в блоке местоположения?
Я говорю о флаге разрыва согласно:
ШАБЛОН ЦЕЛЕВОЙ ФЛАГ
Не «перерыв»; директива.
ОБНОВИТЬ:
Сценарий, для которого я думал использовать это, выглядит следующим образом: простое расположение с несколькими перезаписями:
location /path/ {
rewrite ^/user_request_one$ /target_one;
rewrite ^/user_request_two$ /target_two;
... other directives ...
}
Возможно, я не совсем понимаю, как nginx обрабатывает перезапись, но в приведенном выше примере, если target_one совпадает, будет ли nginx по-прежнему проверять правило перезаписи target_two? Будет ли добавление флага прерывания к target_one инструктировать nginx о прекращении анализа любых дальнейших правил перезаписи?
Основная причина, по которой я спрашиваю, заключается в том, что у нас есть некоторые блоки местоположения с рядом правил перезаписи, и я не уверен, что nginx тестирует шаблоны перезаписи «ниже», даже если они совпадают «ближе к началу». Эти перезаписи очень уникальны, поэтому, если одна из них будет выполнена, у nginx нет абсолютно никаких причин для тестирования других в том же блоке местоположения. Мы просто хотим убедиться, что не тратим драгоценные циклы процессора, поскольку это довольно загруженный сервер.
Надеюсь это поможет.
Спасибо.
На странице HttpRewriteModule есть хорошее объяснение: http://wiki.nginx.org/HttpRewriteModule#rewrite
Возможно, сначала стоит взглянуть на «Как nginx обрабатывает запрос»: http://nginx.org/en/docs/http/request_processing.html
РЕДАКТИРОВАТЬ: да, ваша интерпретация - это то, что делает перерыв
break сохранит обработку запроса в рамках той же директивы местоположения, поэтому вы можете обеспечить соблюдение того, как он будет обрабатываться, даже если перезаписанный путь при нормальных обстоятельствах (т.е.запрашивается напрямую) будет обрабатываться другой директивой местоположения. Обратите внимание, что это происходит только при использовании внутри директивы местоположения.
Извините, я не смог продолжить, я выбегаю за дверь, но не стесняйтесь спрашивать подробности любой части моего ответа.