
Я пытаюсь настроить Nginx v. 1.24.0 и GeoIPupdate так, чтобы пользователи, не являющиеся гражданами определенной страны, не получали доступ к веб-серверу.
Однако, следуя каждому руководству, я вижу, что оно устарело: либо ссылки не работают, потому что MaxMind их удалил, либо они предполагают, что у меня установлен необходимый модуль.
Даже официальная вики Nginx не помогла (https://nginx.org/en/docs/http/ngx_http_geoip_module.html)
Я в тупике и не знаю, что делать. Все, что я хочу сделать, это узнать, как разрешить GeoIPupdate работать с Nginx, поскольку у меня запущен GeoIPupdate.
Я попробовал это руководство:https://github.com/leev/ngx_http_geoip2_module Но теперь я получаю это:
Apr 24 15:25:51 localhost nginx[175588]: nginx: [emerg] unknown directive "if($allowed_country" in /etc/nginx/sites-enabled/default:80
Apr 24 15:25:51 localhost nginx[175588]: nginx: configuration file /etc/nginx/nginx.conf test failed
Рассматриваемая конфигурация (в серверной части):
if($allowed_country = no) {
return 403;
}
При проверке модулей Nginx я вижу, что 50-mod-http-geoip.conf существует и должен был быть загружен, но команда nginx -V не вводит модуль.
Самое интересное, что nginx.conf работает с разрешенными странами, так как я не получаю от него никаких ошибок.
решение1
Я исправил это сам, используя самые смешные и грустные способы.
Имейте в виду, я уже несколько дней изучаю эту странную ошибку и обнаружил, что она возникла из-за того, что я добавил вкладку, чтобы мое ОКР могло нормально функционировать в файлах конфигурации.
Я скопировал и вставил это, и это сработало. https://gist.github.com/dunderrrrrr/8d3fced1f73de2d70ede38f39c88d215