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 / {
# 실제 컨텐츠 설정
}
}
}
특정 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
'리눅스' 카테고리의 다른 글
| [draft] PHP-FPM 로그 파일을 로테이션 설정하는 방법 (0) | 2026.02.11 |
|---|---|
| [draft] Shell 스크립트에서 전역 변수와 로컬 변수를 사용하는 방법 (0) | 2026.02.11 |
| [draft] Redis 스탠드얼론(Standalone), 센티널(Sentinel), 클러스터(Cluster) 구성 방법 (0) | 2026.02.11 |
| [draft] 디스크의 속도를 측정하는 방법 (0) | 2026.02.11 |
| [draft] File Browser를 Docker 컨테이너로 올리고 사용하는 방법 (0) | 2026.02.11 |