@luxter

На что ругается nginx?

Добрый день. Есть такая конструкция, на которую от nginx идёт ругательный выхлоп:

server {
...
location / {
                if ($http_referer != "demo.company.ru" && $remote_addr != 192.168.88.0/24) {
                return 404;
}
}


nginx: [emerg] invalid condition "$http_referer"

Понимаю, что if - табу, но постарался минимизировать его использование, и тем не менее ошибка мне непонятна. Буду благодарен за подсказку.
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
dvershinin
@dvershinin
High performance web server engineer
nginx ругается на && потому что логическое and и or не поддерживаются в директиве if.

Это как раз одна из многих причин, почему map просто придётся использовать :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Xilian
Программист 1С, сетевые технологии, SQL
На глаз if ($http_referer != "demo.company.ru" && $remote_addr != 192.168.88.0/24) должен быть в блоке server, а не location.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы