Debian 11에서 Nginx와 작동하도록 GeoIP 설정

Debian 11에서 Nginx와 작동하도록 GeoIP 설정

특정 국가 출신이 아닌 사용자가 웹 서버에 접근할 수 없도록 Nginx v. 1.24.0과 GeoIPupdate가 작동하도록 설정하려고 합니다.

그러나 모든 가이드를 따라가다 보면 해당 가이드가 오래되어 MaxMind가 링크를 삭제했기 때문에 링크가 작동하지 않거나 설치해야 하는 모듈이 있다고 가정합니다.

심지어 공식 Nginx 위키도 도움이 되지 않았습니다(https://nginx.org/en/docs/http/ngx_http_geoip_module.html)

나는 어찌할 바를 모르고 어떻게 해야 할지 모르겠습니다. 제가 하고 싶은 것은 GeoIPupdate가 실행 중이므로 GeoIPupdate가 Nginx와 작동하도록 허용하는 방법을 아는 것뿐입니다.

나는 이 가이드를 시도했다: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

나는 가능한 가장 재미있고 슬픈 방법으로 그것을 직접 고쳤다.

저는 며칠 동안 이 이상한 버그를 조사해 왔으며 구성 파일에서 OCD가 만족스러울 수 있도록 탭을 추가했기 때문에 이것이 가능하다는 것을 알았습니다.

이것을 복사해서 붙여넣었더니 효과가 있었습니다. https://gist.github.com/dunderrrrrr/8d3fced1f73de2d70ede38f39c88d215

관련 정보