Чат Telegram
Группа ВКонтакте
Nginx: проверяем несколько условий

Как сделать несколько условий в Nginx

Зачастую в конфигурации nginx требуется проверить несколько условий. Однако запись вида if (условие1 && условие2) не поддерживается этим софтом. В этой статье я расскажу о небольшом трюке, который всё же позволяет сделать проверку нескольких условий.

Курс программирования на PHP
Подготовка до уровня устройства на работу!
Начать бесплатно

Однако, прежде чем начать, я всё же рекомендовал бы вам попробовать вынести логику таких проверок на уровень приложения, так как программирование на конфигах nginx - это довольно опасная вещь. Можно часами недоумевать на тему того, почему всё работает именно так. Конфиг не поддаётся отладке, в отличие от приложения, а ещё на нормальном языке программирования можно писать нормальные, понятные и однозначные условия, чего не скажешь о конфигурационных файлах в nginx.

И всё же, если нужно сделать такую проверку в nginx, то вот вам пример:

    if ($conditionA = /panel) { 
      set $conditions  "A"; 
    } 

    if ($conditionB ~* "admin") { 
      set $conditions  "${conditions}B"; 
    } 

    if ($conditions = "AB") { 
      proxy_pass http://localhost/prerender; 
      break; 
    } 

Как вы поняли, мы просто создаём новую переменную $conditions. Её мы при выполнении каждого из условий будем изменять. Если выполнилось первое - помещаем в неё букву A. Если выполнилось второе - добавляем в конец букву B. Остаётся только сравнить получившееся значение с результатом, который должен получиться при прохождении всех условий. В нашем случае - AB. Вот такой вот интересный трюк.

Присоединяйтесь к нам в ВКонтакте и в Facebook, чтобы не пропустить новые уроки. А также вступайте в наш чат PHP-разработчиков в Telegram.
Об авторе
Артём Ивашкевич
Артём Ивашкевич
Занимаюсь программированием более трех лет. В свободное время обучаю программированию на PHP других людей, потому что мне это нравится. Если вы интересуетесь темой IT и хотели бы стать разработчиком, рекомендую прочитать статью о том, как я стал программистом.
Самый понятный курс PHP
Онлайн-уроки в удобное время!
Начать бесплатно
Онлайн-курсы PHP и MySQL
Обучение с полного нуля до уровня джуниора!
Начать бесплатно
Комментарии (2)
Курс программирования на PHP
Подготовка до уровня устройства на работу!
Начать бесплатно
loader
Есть вопрос по программированию?
Здесь быстро ответят!
Задать вопрос
Курс программирования на PHP
Подготовка до уровня устройства на работу!
Начать бесплатно
loader
Форум веб-разработчиков
Здесь все!
Перейти
loader
Логические задачи с собеседований