솔루션/Nginx
[nginx] 정의한 도메인 외 서브도메인 막기, drop
bluebamus
2024. 4. 17. 22:17
- DNS에 여러 서브 도메인을 정의한 경우, 해당 도메인에 대한 nginx의 conf 파일이 없다면, 기본 도메인의 conf를 타고 서버에 접근하느 경우가 허다하게 발생한다.
- 모니터링을 걸어둔 상태라면, 이상 도메인의 접속으로 인한 에러와 서버의 불필요한 로그가 쌓이게 된다.
- 특히 sentry의 기본을 사용한다면, 금방 기본 용량을 채우게 된다.
- 제일 쉬운 방법으로 해당 서브 도메인들을 DNS에서 삭제하는 것이다.
- 하지만, 정의한 이유가 있다면, nginx를 거쳐 서버로 해당 연결이 전달되지 않도록 하는 것이 좋다.
- 아래와 같이 conf 파일에 추가하면 된다.
- domain 부분을 자신의 도메인 주소로 변경하면 된다. 이하 .com 주소도 마찬가지 이다.
if ($host !~* ^(domain\.com|www\.domain\.com)$) {
return 444;
}
- 테스트를 진행할 경우, 해당 도메인은 https 인증서에 대한 오류가 발생한다.
- 해당 코드가 없는 경우 app 서버에 연결이 되고 서버에서 에러로 예외처리 되는 것을 확인할 수 있다.
- 아마 444 에러로 인한 client 처리로 예상된다. 필요시 다른 에러 코드로 변경하면 될것이다.