Географическая переменная 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'о!