Географическая переменная Nginx не работает в условии if

Используя Nginx 1.4.6, Ubuntu 14.04 LTS. У меня есть это в разделе http nginx.conf:

geo $maintenance {
    default         1;
    86.161.27.175   0;
}

В моей конфигурации сайта у меня есть это:

error_page 503 /static/errors/503.html;
location /mydir/ {
    if ($maintenance) {
        return 503;
    }
    try_files $uri $uri/ =404;
}

Тем не менее, я всегда получаю 503 ошибку при просмотре /mydir/ на моем сайте, но для моего IP этого не должно происходить. Я дважды проверил, и это определенно мой текущий IP. У меня есть еще один раздел гео для ограничения скорости, который работает нормально. Ручная настройка $maintenance до 0 чуть выше блока локации работает нормально.

Почему это не работает?

1 ответ

Решение

Нашел проблему: у меня был включен CloudFlare для моего промежуточного сайта, поэтому он получал IP-адрес CloudFlare, а не мой фактический IP-адрес. D'о!

Другие вопросы по тегам