If is Evil

Андрей Середенко andrei.seredenko at gmail.com
Sun Sep 1 18:31:35 UTC 2013


Приветы всем!

Тысячи раз уже слышал, что использовать if в location КРАЙНЕ не
рекомендуется, и что использовать его там можно только в купе с return или
rewrite..last, но - все же хочется разобраться, КАК он отрабатывает и
почему.

Пару рабочих дней было потрачено на то, чтобы разобраться, как оно
работает. Но в итоге выяснилось, что сишку я уже неприлично подзабыл, а все
гуглы мира ведут на 3 ссылки:

    http://wiki.nginx.org/IfIsEvil
    http://habrahabr.ru/post/74135/
    http://agentzh.blogspot.com/2011/03/how-nginx-location-if-works.html

Но в первой кроме лирики толком ничего не сказано, вторая просто с первого
же примера плавит мозг, а в последней уже куда по-лучше, примеров
несколько.. но все одно - какой принцип отработки не ясно(

Ребят, может кто может подробно и последовательно разжевать, КАК это
работает? А то пока получалось обходиться без if'ов, но кто его знает, что
будет завтра.. не хотелось бы оставить новый след от граблей, старый только
вот зажил... да и выяснить причину раз и навсегда куда полезнее, чем просто
запомнить постулат "скажем if в location - НЕТ"

Буду признателен за любые ответы. Спасибо!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130901/be40f44f/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru