본문 바로가기

리눅스

NGINX에서 특정 IP 주소를 허용하고 나머지 모든 IP 주소를 리다이렉트하도록 설정하는 방법

반응형

NGINX에서 특정 IP 주소를 허용하고 나머지 모든 IP 주소를 리다이렉트하도록 설정하는 방법

geo 지시자 예시

geo $geo {
    default        0;

    127.0.0.1      2;
    192.168.1.0/24 1;
    10.1.0.0/16    1;

    ::1            2;
    2001:0db8::/32 1;
}

특정 IP 주소를 차단하고 차단된 IP 주소를 특정 URL로 리다이렉트하는 설정

  • 이 설정에서는 192.168.1.1과 10.0.0.1 IP 주소에서 요청이 들어오는 경우에만 접근을 허용하고 다른 모든 IP 주소는 http://example.com/denied.html로 리다이렉트합니다.
http {
    # geo 모듈을 사용하여 IP 주소를 차단 목록에 추가
    geo $deny_ip {
        default 0;
        192.168.1.1 1; # 차단할 IP 주소
        10.0.0.1 1;    # 다른 차단할 IP 주소
        203.0.113.0/24 1;     # 다른 차단할 IP 주소 대역
    }

    server {
        listen 80;
        server_name example.com;

        # 차단된 IP를 리다이렉트
        if ($deny_ip) {
            return 302 http://example.com/denied.html;
        }

        location / {
            # 실제 컨텐츠 설정
        }
    }
}
728x90

특정 IP 주소는 접근을 허용하고 그 외의 모든 IP 주소는 리다이렉트하도록 설정

  • 이 설정에서는 192.168.1.1과 10.0.0.1 IP 주소에서 요청이 들어오는 경우에만 접근을 허용하고 다른 모든 IP 주소는 http://example.com/denied.html로 리다이렉트합니다.
http {
    # geo 모듈을 사용하여 IP 주소를 허용 목록에 추가
    geo $allow_ip {
        default 0;   # 기본적으로 모든 IP는 허용되지 않음
        192.168.1.1 1; # 접근을 허용할 IP 주소
        10.0.0.1 1;    # 다른 접근을 허용할 IP 주소
        203.0.113.0/24 1;     # 허용할 IP 주소 대역
    }

    server {
        listen 80;
        server_name example.com;

        # 허용된 IP인지 확인하고 허용되지 않은 경우 리다이렉트
        if ($allow_ip = 0) {
            return 302 http://example.com/denied.html;
        }

        location / {
            # 실제 컨텐츠 설정
        }
    }
}

설정 파일을 테스트

  • 설정 파일이 올바른지 확인합니다.
sudo nginx -t

NGINX 재시작

  • 설정이 올바르면 NGINX를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart nginx

 

이제 지정한 IP 주소에서만 접근이 허용되고 그 외의 모든 IP 주소는 리다이렉트됩니다.

 

참고URL

- NGINX Documentation : Module ngx_http_geo_module

 

728x90
반응형