본문 바로가기

리눅스

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

728x90

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