Как добавить заголовок в NGINX только для определенного IP?

Я хочу вывести служебный заголовок (информацию о кеше) только для пользователя с определенным IP (админским). Вот моя конфигурация:

set $debug_ip_address "8.8.8.8";

location / {
    set $is_debug 1;
    if ($http_x_forwarded_for != $debug_ip_address) {
      set $is_debug 0;
    }

    if ($is_debug) {
      add_header X-Cache-File $cachefile;
      add_header X-Cache-File $gzipcachefile;
    }

    try_files $gzipcachefile $cachefile $uri $uri/ /index.php?$args;
  }


Проблема в том, что при данной конструкции мне выдается 404 ошибка, скорее всего из за IF. Я не смог найти похожего примера и не могу понять, что тут не так.
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 1
@edo1h
Что-то вроде этого:
map $http_x_forwarded_for $cachefile_header {
    "8.8.8.8"    $cachefile;
    default      "";
}
…

server {
    …
    location "/" {
        …
        add_header X-Cache-File $cachefile_header;
    }
}


P. S. неплохая статья про map (там упоминается и про "if is evil")
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы