리눅스
NGINX에서 특정 IP 주소를 허용하고 나머지 모든 IP 주소를 리다이렉트하도록 설정하는 방법
변군이글루
2024. 6. 21. 14:50
반응형
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
반응형