Nginx Reverse Proxy로 Private Subnet의 Grafana에 연결 중 발생한 오류와 해결
·
Nginx
문제Private Subnet에 위치한 인스턴스에AWS MSK에서 제공하는 JMX Exporter와 Node Exporter로 수집한 지표들을프로메테우스에 적재하고, 그라파나를 활용하여 시각화 하도록 구성한 상태입니다. 퍼블릭 IP로 클라이언트가 접근하면 Public Subnet에 존재하는 Nginx의 reverse proxy를 통해서 Private Subnet에 위치한 그라파나에 대한 내용을 클라이언트에 응답하도록 아래와 같이 구성하였습니다. server { listen 80; server_tokens off; # Grafana location / { proxy_pass http://10.x.x.x:3000/; # Grafana의 IP 및 포트 proxy..
Nginx에서 해외 IP 차단 설정하기
·
Nginx
문제 갑자기 개발 서버 인스턴스의 CPU 사용률이 말도 안되게 높아졌다. 원래 왼쪽이 정상적인 사용률인데, 갑자기 오른쪽처럼 100%를 찍어버린 것이다. 인스턴스에 접속하여 top 명령어를 통해 확인해 보니, 프로세스를 실행한 커맨드를 의미하는 COMMAND에 java라고 써져있는 프로세스가 CPU 사용량이 90 ~ 100을 왔다 갔다하고 있었는데, 스프링부트쪽인거 같았다. 이런적이 한번도 없었는데 뭔가 느낌이 이상해서 nginx log를 살펴보니... 해외 IP에서 각종 취약점을 악용하여 우리쪽으로 API 요청을 보내고 있었고 대부분의 API 요청은 막혔지만, 어느 하나 걸려서 서버에 과부화가 걸린 것으로 파악된다. Nginx 해외 IP 차단 현재 서버는 해외 접속을 허용할 필요가 전혀 없기 때문에 해..
Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
·
Nginx
문제백엔드 채팅 기능을 개발하면서이미지와 파일 업로드를 추가했는데, 테스트를 해보니 오류가 발생하여오류를 타고 타고 들어가다 nginx 로그를 확인해보니 제목과 같은 오류가 발생했다. 이는 nginx에서 client_max_body_size 설정 때문이고,너무 큰 사이즈의 request를 보내지 못 하도록 제한을 거는 설정이다. client_max_body_size의 기본값은 1MB이다.request의 Content-Length 헤더 값이 이 설정된 값을 넘을 수 없기 때문에파일 업로드할 때 오류가 발생한 것이다.   해결악의적으로 큰 용량의 파일을 업로드해서 스토리지를 가득 채울 수 있기 때문에우선은 채팅방에 업로드할 수 있는 최대 사이즈를 10MB로 설정하기로 하였다. 1. nginx 환경 파일에 접..